Java 异常
Throwable类的体系结构(一些常用的)
异常分类
checked,unchecked
区分:RuntimeException及其子类,Error类及其子类,是unchecked
除此之外继承自Exception的异常是checked
checked异常在编译时必须处理
关键字
try,catch,finally,throw,throws
finally:常用于回收物理资源(数据库连接,网络连接,磁盘文件),finally一定被执行,所以不要在finally中使用return,throw,会覆盖try块语句
try{ return false; }finally{ //程序返回true return true; }
throws:方法上抛出异常类
public void testThrows() throws Exception{};
throw:程序内抛出异常实例
if(出错了){
throw new Exception();
}
异常处理顺序
catch了多个异常,要把子类异常放在前边,父类异常放在后边(先处理小异常,后处理大异常)
多异常捕获
1.多种异常用“|”隔开
2.异常变量有隐式final修饰,不能重新赋值
try-with-resources(用于关闭资源)
1.资源类实现 AutoCloseable或Closeable接口
Closeable是AutoCloseable的子接口
2.实现close()方法
资源要用try()括起来
自定义异常
1.选择要抛出的异常类型(checked,unchecked)
checked继承自Exception
unchecked继承自RuntimeException
2.提供2个构造器(无参,带字符串的构造器)