9.异常
第九章【异常】
一、异常
1、异常体系
异常体系中的根类是 java.lang.Throwable
,Throwable
可以被抛出
该类下面有俩个子类型java.lang.Error
和 java.lang.Exception
Error
,表示错误情况,一般是程序中出现了比较严重的问题,并且程序自身并无法进行处理。Exception
,表示异常情况,程序中出了这种异常,大多是可以通过特定的方式进行处理和纠正的,并且处理完了之后,程序还可以继续往下正常运行。
2、异常种类
- 编译时异常
- 运行时异常
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理