Java入门——异常的捕获与处理
Java入门——异常的捕获与处理
在没有异常处理的语言中,通常需要大量的判断语句,配合所想到的错误来捕获程序中所有可能发生的错误。充分利用Java的异常处理机制,以增进程序的稳定性和效率。
Java的异常处理机制
- 一旦产生异常,则首先会产生一个异常类的实例化对象。
- 在try语句中对此异常对象进行捕获。
- 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。
- 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---抛出,但是最好还是正常捕获。