3、Java 异常的捕获及处理

1. 异常类的继承结构

在整个Java的异常结构中,实际上有两个最常见的类,分别是Excepttion和Error,这两个类全都是Throwable的子类。

Exception:一般表示的是程序中出现的问题,可以直接使用try…catch处理。

Error:一般指的JVM的错误,程序中无法处理。

一般情况下,开发者习惯于将Excepttion和Error统称为异常,而算术异常、数字格式化异常等都属于Exception的子类。

异常处理步骤:
1. 一旦产生异常,则首先会产生一个异常类的实例化对象。
2. 在try语句中对此异常对象进行捕捉。
3. 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。

实现如下:

try{
  //执行代码
  //发生异常,产生异常类的实例化对象
}catch(ArithmeticException e){ //匹配异常类型
  //执行异常处理代码
}finally{
  //异常的统一出口
}

常见异常:

ArithmeticException(算术异常)

NumberFormatException(数字转换异常)

ArrayIndexOutOfBoundsException(数组越界异常)

Exception(其他异常)

2. throws与throw关键字

  • throws关键字:

在定义一个方法时可以使用throws关键字声明,使用throws声明的方法表示不处理异常,而交给方法的调用处进行处理。具体如下所示:

class Math{
   public int div(int i,int j) throws Exception{
   //方法可以不处理异常
     int temp=i/j;
     return temp;
   }
}
  • throw关键字

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

public class ThrowDemo{
  public static void main(String args[]){
    try{
      throw new Exception("自己抛出异常!"); //抛出异常的实例化对象
    }catch(Exception e){//捕捉异常
      System.out.println(e);
    }
  }
}

3. Exception类与RuntimeException类

Exception在程序中必须使用try…catch进行处理

RuntimeException可以不使用try…catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。

4. 断言

断言就是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检测肯定会提示错误信息。
使用如下

assert boolean 表达式;

assert boolean 表达式:详细的信息;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值