16.1.3 异常的抛出

所谓异常的抛出,就是将异常抛给异常处理器,暂时不去处理它。如何处理它呢?这就依靠异常的捕获。关于异常的捕获在下一节中会具体地讲述。言归正传,在上一小节中声明的内容,其实就是一个异常的抛出。

还有一种异常的抛出,就是一直将异常不断地抛出而不去处理。这通过关键字“throw”来处理。下面看一个有关异常再抛出的模型。


方法名throws Exception

{方法体throw Exception

方法体

}


异常的抛出这个知识点相信读者已经掌握了。

【实例16.3】下面继续讲述如何来处理被抛出的异常,来看一个有关异常抛出的实例。


01 import java.io.*;

02 public class file3

03 {

04 public static double quotient(int numerator, int denominator)throws

05 DivideByZeroException

06 {

07 if(denominator==0)

08 throw new DivideByZeroException();

09 else

10 return(double)numerator;

11 }

12 public static void main(String[]args)

13 {

14 try

15 {

16 double result=quotient(3,0);

17 }

18 catch(DivideByZeroException exception)

19 {

20 System.out.println(exception.toString());

21 }

22 }

23 public static class DivideByZeroException extends ArithmeticException

24 {

25 public DivideByZeroException()

26 {

27 super("不能被0除");

28 }

29 }

}


【代码说明】第4~11行是创建了一个方法quotient,其抛出错误信息DivideByZeroException。第23~29行是自定义的错误信息。第14~21行进行除法运算并俘获异常。

【运行效果】


file3$DivideByZeroException:不能被0除


上述程序演示了如何抛出异常。读者通过这个程序,学习在实际开发程序中,异常抛出的用法。在后面的综合实例时,会经常看到异常的用法。