一张图让你明白java异常分类(异常继承关系、自定义异常的写法)

今天碰到一个同事,问我Throwable和Exception什么关系,我说你向上点一下源码,看一下继承关系就知道;

最后我总结了一张异常的继承图:


注释:Error和RuntimeException属于Unchecked Exception(非检查异常);

          try catch语句捕获多个异常时,如有诸如上述的继承关系,子类异常在前,父类的在后捕获。

         (1)Error:jvm中出现不可恢复的错误,如堆内存溢出等,程序是没有处理机会的。

         (2)运行时异常(RuntimeException):属于非检查异常,java编译器忽略其抛出和检查,当在加载运行后,出现的异常;常见有:ArrayIndexOutofException、NumberFormatException、NullPointerException、ClassCastException、ClassNotFoundException等。

         (3)非运行时异常:也叫可处理异常,程序编译时,就提示的异常。如:自定义异常、IOException、SQLException、FileNotFoundException等。

         (4)自定义异常示例:自定义异常根据需求使用throw关键字引发异常。

//①自定义异常类继承Exception

class TestException extends Exception{

    String message = "";

    public TestException(String message) {

       this.message = message;

    }

    @Override

    public String toString() {

       return message;

    }

}

//②自定义异常用throw设置触发

public class Demo {

    public static void main(String[]args) throws Exception{

           String e = "asdfabc";

       if(e.contains("abc")){

           throw new TestException("包含非法字符");

       }

    }

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值