在介绍java中的异常处理之前,我们要先弄明白异常和错误的区别和联系。
以下是我个人的理解:
异常:所谓异常就是不正常,能够预见的并能掌控到的,并且能处理的。
一、处理异常有2种方式:
① try{} catch(){} 捕获,并处理,是积极的
或try{} catch(){} finally{finally中的内容一定执行}
try{} catch(){} finally{}三者合理的组合关系:(这是一道经典的java面试题)
try{} catch(){}
try{} finally{}
try{} catch(){} finally{}
try{} finally{}和 catch(){} finally{}不能单独使用
说到这就牵扯到三个词:final、finally、finalize()
final是常量修饰符
finally 就是此异常的一部分,意为最终执行
finalize()对象在被垃圾回收之前调用的方法
② throws 抛出异常的对象,这种方式比较消极,不对异常进行处理只是抛出
二、就内存操作而言,异常又分为两种:
checkedException 检查异常如I/O异常,数据库异常
uncheckedException 又称运行时异常,系统会自己解决
三、自定义异常:
定义一个异常类继承Exception类
如:
public MyException extends Exception{
public void printStackTrace(){
system.out.println("这是自定义异常");
}
main()(main()方法中){
try{
throw new MyException();
}catch(Exception e){
e.printStackTrance();
}
}
}
以下是我个人的理解:
异常:所谓异常就是不正常,能够预见的并能掌控到的,并且能处理的。
错误:所谓错误就是不能预见且不能处理的。
一、处理异常有2种方式:
① try{} catch(){} 捕获,并处理,是积极的
或try{} catch(){} finally{finally中的内容一定执行}
try{} catch(){} finally{}三者合理的组合关系:(这是一道经典的java面试题)
try{} catch(){}
try{} finally{}
try{} catch(){} finally{}
try{} finally{}和 catch(){} finally{}不能单独使用
说到这就牵扯到三个词:final、finally、finalize()
final是常量修饰符
finally 就是此异常的一部分,意为最终执行
finalize()对象在被垃圾回收之前调用的方法
② throws 抛出异常的对象,这种方式比较消极,不对异常进行处理只是抛出
二、就内存操作而言,异常又分为两种:
checkedException 检查异常如I/O异常,数据库异常
uncheckedException 又称运行时异常,系统会自己解决
三、自定义异常:
定义一个异常类继承Exception类
如:
public MyException extends Exception{
public void printStackTrace(){
system.out.println("这是自定义异常");
}
main()(main()方法中){
try{
throw new MyException();
}catch(Exception e){
e.printStackTrance();
}
}
}