学习笔记-异常体系
异常的继承图
从继承图中可以看出来Exception
是Throwable
的继承类
异常的分类
Throwable
分为Error
和Exception
- Error:
OutOfMemoryError
,StackOverFlowError
等 - Exception:
RuntimeException
(UnCheckedException 运行时异常)和CheckedException
(受检异常) -
- RuntimeException:
NullPointerException
,IndexOutOfBroudsException
等,一般由程序的逻辑代码产生,一般不抛出或者显示的声明这种异常,而是尽力去减少这种异常的产生,可以避免.
- RuntimeException:
-
- CheckedException:代码中需要显示处理的异常,不处理这种异常的话编译会出错,如
SQLException
,IOException
,ClassNotFoundException
- CheckedException:代码中需要显示处理的异常,不处理这种异常的话编译会出错,如
Exception和Error的区别
Exception
是程序本身可以处理的异常
Error
(致命)是程序无法处理,表示出现了不可控的错误,有Java的虚拟机产生和抛出,不可控,在编译的时候检查不到Error的存在
异常的处理
try-catch-finally
finally是在return语句后执行的,是为了做后续工作,例如释放连接,关闭流,因为finally代码块无论如何都要执行,所以不要在finally中使用return语句
catch的时候从上往下异常类逐渐变大,从子类异常到父类异常,如果有匹配的catch,它就会忽略掉这个catch后面所有的catch.
throw
抛出一个异常,动词
throw new Exception()
表示抛出一个异常
throws
声明一个方法可能抛出的异常,是一种示意
public void f() throws oneException
表示在调用f这个方法的时候可能会抛出异常,由调用该方法的程序处理这个异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南