这篇文章来简单讲一下异常的有关内容,在Java中,异常即Java在编译或运行或者运行过程中出现的错误。在实际开发的应用中,只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。
java通过异常处理机制来解决异常,异常处理机制能让程序在异常发生时,按照代码预先设定好的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行。
异常机制用到的关键字
- try -- 用于监听;将要被监听的代码(可能出现异常的代码)放在try语句块之内,当 try语句块内发生异常时,异常就被抛出。
- catch -- 用于捕获异常,catch用来捕获try语句块中发生的异常。
- finally -- finally语句块不管有没有出现异常,finally块中代码总是会被执行,它主要用于回收在try块里打开的物理资源。只有finally块执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法语句时,就不会跳回执行,而是直接停止。
- throw -- 大用于抛出异常
- throws -- 用在方法签名中,用于声明该方法可能抛出的异常,main主方法上也可以使用throws抛出。如果在主方法上使用了throws抛出,就表示在主方法里面可以不用强制性进行异常处理,如果出现了异常,就交给JVM进行默认处理,则此时会导致程序中断执行。
异常的继承结构
Throwable是顶级父类,子类异常中的Error是系统错误,无法修复,Exception是可修复的错误,也是我们要处理的异常。
常见异常:
输入输出异常:IOException
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
操作数据库异常:SQLException
文件未找到异常:FileNotFoundException
数组负下标异常:NegativeArrayException
数组下标越界异常ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
字符串转换为数字异常:NumberFormatException
方法未找到异常:NoSuchMethodException
异常处理方式
1、通过try、catch捕获异常
语法结构为:try{
// 可能会抛出异常的程序代码
}catch(ExceptionName e1){
//Catch代码块
}finally{
释放资源代码;
}
注意:
如果程序可能存在多个异常,需要多个catch进行捕获,异常如果是同级关系,catch谁前谁后没有关系,如果异常之间存在上下级关系,上级需要放在后面。
2、通过throws抛出异常
在会发生异常的方法上添加代码:throws 异常类型
例如:
public
3、throw关键字抛出异常
throw关键字作用是抛出一个异常,抛出的时候是抛出的是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。
暂时想到的就这些了,感兴趣的话,可以深入了解一下Java的异常处理机制!