【javaSE】java异常处理机制

************************************************************************ ****原文:blog.csdn.net/clark_xu徐长亮的专栏************************************************************************1.1 Exception类

java异常结构中定义有throwable类,Exception和Error是其派生的两个子类。其中Exception表示由于非法情况导致的异常,Error表示java运行时候环境出现的错误。

异常处理的目的就是当异常发生时候妥善的终止程序,避免灾难性后果的发生,具体的操作通常包括:

l 通知:向用户通知异常对的发生

l 恢复:保存重要的数据,关闭文件,回滚事务等

l 退出:以恰当的形式退出程序

1.2 try语句

try语句指定了一段代码,改代码就是一次捕获和处理的范围,而它后面的catch语句对应这段代码可能抛出的所有异常进行相应的处理。

1.3 catch语句

每个try语句块可以伴随多个catch语句,用于处理可能产生的不同类型的异常。在catch中声明的异常(cath(SomeException e))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息,列入getMessage()方法获取有关异常的事件的信息,printStackTrace()方法用来跟踪异常事件发生时候执行堆栈的内容。

1.4 throw语句

第一种场景,当程序发生错误但是无法处理的时候,会抛出这个异常。

第二种场景,主动自行抛出异常:thrown new ArithmeticException();

第三种场景,当异常处理自后,抛出,让下一层异常处理块来捕获。

主动抛出异常的例子。

try{

if(dblzero==0){

thrown new ArithmeticException();

}

}

cath(ArithmeticExepton){

发生除零异常

}

1.5 throws声明

对象中有很多方法,这些方法中可能会因为某些错误而引发异常,但是不希望直接在这个方法中处理这些异常,而希望调用这个他的方法来统一处理。这时候可以使用throws关键字声明这个方法抛出的异常。格式为:

pubic static void stringToDate(String str) thows ParseException{

//

}

而在main方法中的调用为:

try{

StirngToDate(str);

}

catch(ParseException e){

e.printStackTrace():

}

1.6 finally块

finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序其他部分一起,能够对程序的状态做统一的管理。换句话说,无论try语句所指定的程序中是否抛出例外,finally锁指定的代码都要被执行

因此,通常在finally语句中可以信息资源的消除工作,如关闭打开的文件,jdbc连接,删除临时文件等。

1.7 try-catch-finally使用

必须在try块之后添加catch或者finally块;可以嵌套try-catch-finally结构。

在try-cath-finnally中可以重新thown抛出异常,待其他catch语句处理。

注,以下情况程序在finally处会异常终止

l jvm过早终止

l finally块中抛出未处理的异常

1.8 RuntimeException

java异常也可以分为:可检测异常(编译器强制处理的异常),非检测异常(如RuntimeException),自定义异常。

常见的RuntimeException有

l IllegalArgumentException

l NullPointerException

l ArrayIndexOutOfBoundsException

l ClassCastException

l NumberFormatException

在多个catch处理一系列异常,异常的大小关系,大类型的放在后面处理。

1.9 重写方法时的异常处理

如果使用继承时,在父类别的某个方法上宣告了throws某些异常,,而在子类别中重新定义该方法时,可以:

l 重写方法可以不处理异常(重新定义时候,不设定throwns)

l 重写方法可以可throws父方法的异常子类

l 重写方法可以throws父方法的某些异常

但是不可以:

l 重新方法throws父方法没有throws的异常

在你生活出现失意和疲惫时能给你一点儿力量和希冀,只愿你幸福快乐。

【javaSE】java异常处理机制

相关文章:

你感兴趣的文章:

标签云: