31 throw和throws有什么不同?
答:throws用于声明一个方法会抛出哪些异常。而throw是在方法体中实际执行抛出异常的动作。
假如你在方法中throw一个异常,却没有在方法声明中声明之,编译器会报错。
注重Error和RuntimeException的子类是例外,无需非凡声明。
32 什么是异常?
答:异常最早在Ada语言中引入,用于在程序中动态处理错误并恢复。
你可以在方法中拦截底层异常并处理之,也可以抛给更高层的模块去处理。
你也可以抛出自己的异常指示发生了某些不正常情况。常见的拦截处理代码如下:
try
{
...... //以下是可能发生异常的代码
...... //异常被抛出,执行流程中断并转向拦截代码。
......
}
catch(Exception1 e) //假如Exception1是Exception2的子类并要做非凡处理,应排在前面
{
//发生Exception1时被该段拦截