在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误。充分利用Java的异常处理机制,以增进程序的稳定性和效率。


 Java的异常处理机制

  1. 一旦产生异常,则首先会产生一个异常类的实例化对象。
  2. 在try语句中对此异常对象进行捕获。
  3. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。
  4. finaly是异常的统一出口,一定会执行。

所有的子类实例全部可由父类接收,利用向上转型的概念,所有的异常对象都可以使用Exception类接收


throws关键字

  throws:使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。

  在主方法中不要使用throws关键字。


 throw关键字

  可以直接使用throw关键字人为的抛出一个异常,抛出时,直接抛出异常类的实例化对象即可。


范例:throw与throws的应用

设计一个相除的方法,要求必须打印“计算开始”信息,“计算结束”信息,如果有异常,则肯定调用被调用处处理。

 1 package Sep18;
 2 /*设计一个相除的方法,要求必须打印“计算开始”信息,“计算结束”信息,如果有异常,则肯定调用被调用处处理。
 3  */
 4 public class TrowDemo02 {
 5     public static void main(String args[]){
 6         Math m=new Math();
 7         try{
 8             System.out.println("除法操作:"+m.div(10, 0));
 9         }catch(Exception e){
10             System.out.println("异常产生:"+e);//产生异常时执行。
11         }
12     }
13 }
14 class Math{
15     public int div(int i,int j) throws Exception{//方法可以不处理异常,直接抛出
16         System.out.println("****计算开始****");
17         int temp=0;
18         try{
19             temp=i/j;
20             }catch(Exception e){//捕获异常
21                 throw e;//把异常结构交给被调用处
22             }finally{
23                 System.out.println("****计算结束****");
24             }
25         return temp;
26     }
27 }
****计算开始****
****计算结束****
异常产生:java.lang.ArithmeticException: / by zero

Exception类与RuntimeException类

  RuntimeException类是Exception类的一个子类,但是可以直接throws,而不用try---catch---抛出,但是最好还是正常捕获。

 

分类:

技术点:

相关文章: