throw抛出RuntimeException及其子类不需要在函数上声明,因为Runtime异常无法通过try/catch解决,需要程序员修改程序
如果父类抛出了异常声明,那么子类只能抛出父类异常或其异常子类;
父类没有抛异常时,子类也不能抛,但可以catch
抛异常时要抛具体的类,不能只随便抛一个Exception或RuntimeException,处理也是一样,要针对性处理,不能随便输出一条错误信息就完事
一般处理格式:
try{
//需要被检测异常的代码。
}
catch(异常类 变量) //该变量用于接收发生的异常对象
{
//处理异常的代码。
}
finally{
//一定会执行的代码,一般是关闭资源;
}
try catch finally 代码块组合特点: 1. try catch finally 2. try catch(多个):当没有资源需要释放时,可以不用定义finally。 3. try finally:异常无法直接catch处理,但是资源必须关闭。 自定义异常:必须继承Exception或其子类,通过构造函数接收异常信息。
一般如下:
- class DemoException extends Exception
- {
- DemoException(String msg)
- {
- super(msg); //父类中已有该构造函数,子类只需调用就行
- }
- }
复制代码
|