温故知新


        刚才温习了一遍异常的捕获知识。先解释异常这个概念(异常是编写程序的过程中由于各种错误导致程序运行中断或者说是导致程序中断的指令流),在编写程序,由于异常得不到处理而产生的后果是极其严重。在程序中容易导致程序中断的两种情况是:一种是断电,另一种是除零操作。断电情况并非是程序开发过程中造成的,所以我们重点研究一下在编程中除零的操作,如何捕获异常并处理异常尼?
处理异常的语法格式是:
try{编辑捕获异常语句;
}catch(异常类   异常类名){
编辑处理异常语句;
}finally{异常处理后的出口;
}
#可以编辑多个catch{}语句块,finaly{}出口根据需要可要可不要。
下面以除零为例子捕获异常并手动输入被除数和除数。
public class DivisionTest1
{
public static void main(String[] args) 
{
int x=0;  //定义一个被除数
int y=0;  //定义一个除数;
double result=0;   //初始化商
try{               //捕获异常
int i=Integer.parseInt(args[0]); //将运行的参数进行装箱;
int j=Integer.parseInt(args[1]);
result=x/y;
}catch(Exception e){  //处理异常
System.out.println("出现异常"+e);
}                   //此处还可以加一个finally{}语句
System.out.println("相除的结果是"+result);
}
}

        可以手动将除数设置为0,异常显示就会出来,如果程序中没有异常,则会显示正确的除法结果。下面我们来聊聊异常的处理机制。
        异常处理机制如上图编码所示,捕获部分、处理部分都相互对应,但是在处理部分,根据异常的产生对象,系统有不同的异常类出现,经常可以看到的有:
 1.ArrayIndexOutException(数组超出绑定异常);
 2.NumberFormatException(数字格式化异常);
 3.ArithmeticException(算数异常)。
可以根据不同的异常捕获进行相应的异常处理操作
     下面我们来梳理一下异常类的继承:
Throwable的两个子类是Exception(需要是出现在程序中)和Error(主要出现在JVM中)。
在Exception类中的继承顺序为:
Exception-->RuntimeException-->IllgalArgumentException-->NumberFormatException
Exception类中对于异常的捕获需要用规定的格式进行,而在RuntimeException中可以不用(最好是使用规范的格式进行)。
    关于Throws关键字跟Throw关键字的使用和区别,
1.Throws关键字在方法中可以将异常的捕获和处理交给调用处;(注意在主方法中也可以采用此方法,将异常的处理交给JVM处理,不过建议此方法的使用)
2.throw关键字可以人为的产生一个异常。
       异常是在程序设计中重要的一部分,一个好的程序,必然对异常做了较好的捕获和处理。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值