JAVA中的异常

一、JAVA中异常类的结构

        Throwable 类是 Java 语言中所有错误和异常的超类。它的两个子类分别是Error(错误)和Exception(异常)。

异常的分类有很多种,每个人有每个人的叫法,下面的分类方式不包括错误(Error),因为错误其实不属于异常的范畴,发生错误一般都会导致JVM的崩溃,进程停止。

第一种分类是检查异常和非检查异常,非检查异常包括RuntimeException及其子类,除了非检查异常都是检查异常;

第二种分类是运行时异常(RuntimeException)和非运行时异常,运行时异常包括RuntimeException及其子类,除了运行时异常都是非运行时异常。

从上面的两个分类上可以看出运行时异常和非检查异常其实是一类异常,分明显的一个判别标准就是你在编码的时候是否需要捕获异常并作出响应的处理,需要捕获的异常就是检查异常(非运行时异常),不需要的就是非检查异常(运行时异常),编译期无法检查,只有程序运行的时候才可以发现,这个异常的出现一般都是代码的问题,需要通过代码解决这类异常。

           1.Error

            Error有几个关键点:(1)Error发生的时间是不确定的;(2)Error一般都是底层的资源或者是系统层面的错误,例如内存溢出等;(3)Error的捕获应该在系统层面上进行

            比较常见的Error一般都是VirtualMachineError,例如:StackOverflowError和OutOfMemoryError。这种错误的处理方式比Exception的处理要复杂的多,这里就不进行赘述了,以后单独写篇文章。

            2.RuntimeException(运行时异常)(非检查异常)

            下边会列出一些常见的运行时异常,这个问题面试初学者的时候会问,所以初学者需要仔细熟悉:  

               ClassCastException
               IllegalArgumentException
               IllegalMonitorStateException
               IllegalPathStateException
               IllegalStateException
               IndexOutOfBoundsException
               NullPointerException
               SystemException
               UndeclaredThrowableException
               UnknownElementException
               UnknownTypeException

          3.检查异常(非运行时异常)

              try(){

               }catch(Exception e){

               }finally{        

               }

               try-catch捕获的异常一般都是检查异常。

二、异常的处理

           1、throws Exception直接在方法的声明后面直接抛出,不做任何处理;

           2、throw Exception在方法内部抛出,也是抛给了上一层;

           3、try-catch捕获异常,程序出错后还可以继续执行,不会让程序中断,try-catch块一般伴随着finally,主要是想在异常发生后执行一些后续的处理,例如流的关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值