没到进度,换成异常处理
需要进行处理的异常称为检查型异常,除了Error的子类和RuntimeException的子类,其它都是检查型异常。编译器要求必须用try-catch语句捕获检查型异常,或者在方法声明中用throws子句声明可能抛出的所有异常。
如果你知道如何处理异常,就把可能抛出异常的代码放到try块中,把出错处理写道catch块中。同一个 catch 子句可以捕获多个异常类型。如果某些代码不论在异常有没有抛出都必须执行,就在后面加上finally块。不要把改变控制流的语句(return throw break continue)放在finally 子句里,否则会覆盖try或者catch 子句中的返回值和异常。
如果对象属于一个实现了 AutoCloseable 接口的类,这个接口有一个方法:void close() throw Eception。在 try-with-resources语句块退出后,会自动调用 res.close()
如果你不确定如果处理异常,就在方法头部用throws声明。在子类覆盖超类方法时,抛出的检查型异常只能是超类方法抛出异常的子类。超类方法没有抛异常,子类覆盖的方法也不能抛异常