9.异常

第九章【异常】

一、异常

1、异常体系

异常体系中的根类是 java.lang.Throwable,Throwable可以被抛出

​ 该类下面有俩个子类型java.lang.Errorjava.lang.Exception

  • Error,表示错误情况,一般是程序中出现了比较严重的问题,并且程序自身并无法进行处理。
  • Exception,表示异常情况,程序中出了这种异常,大多是可以通过特定的方式进行处理和纠正的,并且处理完了之后,程序还可以继续往下正常运行。
2、异常种类
  • 编译时异常
  • 运行时异常

image-20210302165108645

3、异常传播

​ 如果一个方法中抛出了异常,并且一直没有进行处理,那么这个异常将会抛给当前方法的调用者,并一直向上抛出,直到抛给JVM,最后JVM将这个异常信息打印输出,同时程序运行的停止。

​ 如果,在异常传播的过程中,任何一个地方对异常进行了处理,那么JVM不会停止,程序还会正常往下运行!

二、异常抛出

1 、自动抛出异常

2、手动抛出异常

三、异常捕获

1、try-catch

进行异常捕获处理,并且处理完成后,JVM不会停止运行,代码还可以正常的往下运行!

try{
    编写可能会出现异常的代码 
}catch(异常类型 e){ 
    //处理异常的代码,可以是简单的输出异常信息,也可以使用日志进行了记录,也可以对数据进行修改纠 正等操作 
}
2、finally

使用finally关键,就可以保证指定代码一定会执行,无论是否发生异常!

四、自定义异常

1、如何自定义异常
  • 如果要自定义一个编译时异常类型,就自定义一个类,并继承Exception
  • 如果要自定义一个运行时异常类型,就自定义一个类,并继承RuntimeException

五、断言 assert

​ 断言( assert ),是JDK1.4的时候,增加的一个关键字。用它可以在程序中,确认一些关键性条件必须是成立的,否则会抛出 AssertionError 类型的错误。(了解即可

​ 注意,断言( assert )并不是用来代替 if 判断的,而是确认系统中的一些关键性条件必须成立的,所以 assert 和 if 并不冲突,并且还可以通过给JVM传参数,来控制断言( assert )是否生效。

断言(assert)的使用方式:

assert 布尔表达式; //或者 
assert 布尔表达式 : "错误信息";

默认情况下,JVM是没有开启断言功能的,需要通过给JVM传参打开此项功能

需要使用-enableassertions或者 -ea JVM参数

例如, java -ea com.briup.demo.Test

posted @   可乐爱兑姜汁  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示