checked Exception和unchecked Exception
平时对这类知识点也不是太上心,总是觉得一些定义除了在面试时候会用得上,在平时也不太用(但越来越感觉,其实也不见得就只有面试时候才需要,相反,如果并不把这些知道点是用于应付面试,平时多学习,其实是很有必要的,又或者说,连这些知识都含含糊糊,其实很难体现得出有什么功底吧)。
废话结束,进入正题。
Java中存在两种异常,一种是checked exception,一种是unchecked exception。
Java的异常层次结构
从这张图上,可以看到,异常相关的类其实都是由throwable继承,分两类, error 和 exception
unchecked异常和checked异常的定义
UncheckedException:派生于Error或者RuntimeException的异常称为unchecked异常
CheckedException:派生于Error或者RuntimeException之外的异常(即除了 uncheckedException 外,都是 checkedException 了。。。)
emmmm, 怎么说呢,就是在编码过程中,checkedException(能够被检查到的异常),其它都会显式地提示让开发人员,去try-catch 掉异常。对于那些并不会提示(即,按道理都可以避免掉的异常,比如空指针,找不到资源,指标超界等这些异常都是可以避免的,只能在运行时才能被发现,在编辑阶段是不能被检查出来的)都是 runtimeException, 都是 Unchecked 的。
所以大部分其实都是 uncheckedException, 当然,也没有人会故意去写一些异常,都只是因为没有考虑到,才会出现的运行时异常,只是这些运行时异常,是都是可以“避免”的。
【推荐】国内首个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代理技术深度解析与实战指南