Java异常机制

Java异常机制

Java中的可抛出类型都继承自java.lang.Throwable. Error类型继承自java.lang.Error. Exception类型继承自java.lang.Exception.

例如:

1.IllegalAccessException异常

2.IllegalArgumentException异常

3.IllegalAccessError

受查异常和非受查异常

RuntimeException和Error都是不用捕获也能通过编译的,称为非受查异常。(当然二者都可以捕获)

其他的异常类型都需要捕获。

如果一个方法抛出了checked异常并且没有自己捕获,必须采用throws在函数签名尾部声明以便捕获。

注意:如果一个catch语句试图捕获checked异常,那么该try语句中必须可能抛出该checked异常或者其子类,否则编译报错。

例如

 try {
    System.out.println("nothing happened");
}
catch(IllegalAccessException e){ System.out.println(e); }
//该例会报错“在相应的 try 语句主体中不能抛出异常错误IllegalAccessException”

方法可以在任何位置使用throw抛出异常。

自定义异常

  1. 必须从已有的异常类继承
  2. 可以定义一个以字符串为参数的构造方法传递描述信息
  3. 重写Throwable的getMessage方法,返回描述信息。
    1 class AgeLessThanException extends Exception{
    2     public String Message;
    3     public AgeLessThanException(String mes){
    4         this.Message = mes;
    5     }
    6     public String getMessage(){
    7         return Message;
    8     }
    9 }
原文地址:https://www.cnblogs.com/jxzheng/p/5223328.html