一、java异常是java提供的用于处理程序中错误的一种机制,所谓错误是程序在运行过程中出现的异常事件
如:java要检查下标越界问题,除0溢出问题。C/C++不检查
二、抛出异常对象(throw),捕获异常(catch)
try {
System.out.println(2/0);
} catch (ArithmeticException e) {
System.out.println("系统正在维护,请与管理员联系");
e.printStackTrace(); //打印错误的堆栈信息
}
如上,ArithmeticException e是一个错误对象,类别是数学异常,可以直接使用。
三、Exception类别
1、Throwable(Error,Exception),对于Exception必须写出try,catch;对于Error,程序不进行处理,也处理不了
2、RuntimeException,可以不写出
上面那个错误就属于RuntimeException,可以不逮出
四、finally语句
不管有无捕获到异常
finally语句始终会被执行
try{......}
catch(SomeException){......}
finally{.....}
五、方法中使用关键字throws声明异常
方法() throws Exception1,Exception2....
注意:1、免检异常不用声明,其他异常必须显式说明
2、一个方法总能抛出免检异常。如果一个方法要抛出必检异常,那么必须在方法中说明部分声明这个异常
六、如果异常不能在当前方法中捕获,就传给该方法的调用者。这个过程一直重复,直到异常被捕获或被传给main方法
七、在一个try语句块中,基类异常的捕获语句不能写在子类异常捕获语句的上面。
也就是catch(Exception e)不能写在一堆catch的第一个
八、重写方法需要抛出与原方法所抛出异常类型一致的异常或者不抛出异常