异常的捕获和处理——JAVA

@月月鸟

常见的异常

输入输出异常:IOException
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
操作数据库异常:SQLException
文件未找到异常:FileNotFoundException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
字符串转换为数字异常:NumberFormatException
方法未找到异常:NoSuchMethodException

异常的捕获和处理——JAVA_第1张图片

异常的捕获、抛出和异常处理是维持代码健壮性的重要条件。灵活使用异常及处理,不仅能最大限度的避免出错,也能增加软件的容错机制。

异常的处理方式

异常的捕获和处理——JAVA_第2张图片

通过try、catch捕获异常

try{

// 程序代码

}catch(ExceptionName e1){

//Catch 块

}

通过throws抛出异常

定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。

throw关键字抛出异常

throw关键字作用是抛出一个异常,抛出的时候是抛出的是一个异常类的实例化对象,在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。

注意!(throw 和 throws的区别)
  1. throw 用于程序员自行产生的并抛出异常,throws用于声明该方法内跑出了异常。
  2. 使用的位置不同:throw位于方法体内部,可以作为单独语句使用throws必须跟在方法参数列表的后面,不能单独使用。
  3. 内容不同:throw 跑出一个异常对象,只能是一个;throws 后面跟异常类,可以跟多个。

finally

try{
	return;
}catch(){
}
finally{
}	
return;

按照程序的执行顺序,代码段首先进入try语句,因无异常抛出,代码将要return的内容保存在内存中,然后执行finally,因finally中无可执行内容,再转回try中执行return,整个代码段执行结束,而finally后面的return是不会执行的。

1、不管有没有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

以上内容可能会有出入,部分出自转载,欢迎大家踊跃留言指正。

你可能感兴趣的:(JAVA)