【正确答案】在Java语言中,异常处理是对可能出现的异常进行处理,以防止程序遇到异常时直接退出(对于需要长时间持续运行的程序来说是不可接受的)或者得到无法预知的结果。用户程序自定义的异常和应用程序特定的异常,必须借助于throws和throw语句来定义抛出异常。
throw语句用来抛出一个异常。其语法如下:
throw(异常对象);
throw e;
throws是方法可能抛出异常的声明。其语法如下:
[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
public void doA(int a)throws Exception1,Exception3{......}
当需要显式地抛出一个异常(通常情况下是用户自定义的异常)时,需要使用关键字throw来抛出异常,而关键字throws用来列出一个方法可能会抛出的异常类型。
使用方法如下例所示:
class MyException extends Exception{}
public class Test{
//告诉方法的调用者这个方法可能会抛出MyException异常
public void f(int i)throws MyException
{
if(i==1)
//当满足条件的时候抛出自定义的异常
throw new MyException();
}
}
除了以上强调的一个区别以外,二者还有以下几点异同之处:
1)throws通常出现在函数头;而throw则通常出现在函数体。
2)throws表示出现异常的一种可能性,并不一定会发生这些异常;而throw则是抛出了异常,即如果执行throw,则一定抛出了某种异常。
3)两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
【答案解析】