Java异常处理入门:详解try catch finally使用技巧
时间:2026-08-20 | 作者:游戏探长 | 阅读:0一、什么是异常
异常,就是程序运行过程中出现的“非正常情况”。比如程序执行到一半突然中断,或者进入了不该进入的流程。
不过有一个前提:语法本身必须正确。如果语法写错了,编译阶段就会直接报错,这属于编译错误,不归异常处理范围。
二、异常体系(顶层:Throwable)
Java中的异常体系,顶层是 Throwable。它主要分为两大类:
- Error 错误——虚拟机级别的严重问题,比如栈溢出、内存溢出OOM。程序自身没法处理,也不用管它,捕获了也没意义。
- Exception 异常——这才是我们要关注和处理的。
Exception 的常见分类
- 受检异常(编译异常):编译器强制要求你处理。要么用try-catch兜住,要么在方法签名上throws扔出去。典型例子:IO异常、文件找不到、线程睡眠异常。
- 运行时异常(RuntimeException):编译阶段不会强制处理,运行时才暴露问题。大多是代码里的bug,比如空指针、数组越界、除数为0、类型转换异常、非法参数。要不要处理,要看场景,但通常不建议放任不管。
三、五个关键字用法
异常处理里最常用的,有这五个关键字:
- try:把可能出错的代码包起来,像给危险区域加一层保护。
- catch:捕获对应类型的异常,然后进行处理,比如记录日志、提示用户、或者做补偿操作。
- finally:不管是否发生异常,它基本都会执行。常用来关流、释放资源。唯一例外是调用了
System.exit(),让JVM直接退出,这时finally不会执行。 - throws:写在方法声明后面,表示“这个方法可能抛出某些异常”,由调用方决定怎么处理。
- throw:写在方法内部,手动抛出一个异常对象,主动触发异常。
throw 和 throws 的区别
- throws:用于声明异常,是提前告知调用方。
- throw:用于抛出异常,是在代码中主动触发。
四、多 catch 规则
如果有多个catch连续编写,要记住一条规则:子类异常必须写在父类前面。
原因很简单。父类异常如果先匹配,后面的子类异常就永远没有机会执行,编译器会直接报错。
五、自定义异常
在业务场景中,经常需要定义专属的异常类型。比如订单超时异常、余额不足异常。
常见做法是继承RuntimeException。这样不用强制声明throws,更方便统一处理。写法如下:
public class MyBizException extends RuntimeException {
public MyBizException(String msg) {
super(msg);
}
}
六、写代码小规范
- 别写空catch。至少要打印异常信息,否则出了问题很难定位。
- 尽量捕获具体异常。比如IO异常、SQL异常。不要为了省事直接catch Exception,这样容易掩盖意料之外的问题。
- 别拿异常当if用。异常用于逻辑判断,开销很大。能提前校验的,尽量用if。
- JDK7及以上,建议使用try-with-resources。它可以自动关闭流,省去手写finally释放资源,代码也更清爽。
七、注意事项
- Error不可处理,Exception可处理。不要把精力浪费在抓Error上。
- 编译异常必须处理,运行时异常可处理可不处理,但通常不建议忽视。
- finally绝大多数情况下都会执行,前提是JVM没有被强制关闭。
- throw是主动抛,throws是被动声明,两者不要混淆。
八、总结
异常处理是Ja va开发的基本功。掌握好异常体系和几个关键字,就能写出更健壮、更清晰的代码。
上面这些内容,基本覆盖了日常开发中90%的常见场景。多写几次、多用几次,自然就能熟练掌握。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- Photoshop去斑滤镜使用教程与实用技巧
- 时间:2026-08-23
-
- 视觉助手查找表功能详解与应用指南
- 时间:2026-08-23
-
- PS画笔工具实用技巧与高级设置教程详解
- 时间:2026-08-22
-
- FOZENS X-3超级本实用技巧与高效操作方法
- 时间:2026-08-22
-
- Codex从入门到高阶使用技巧与实战指南
- 时间:2026-08-20
-
- 华硕Vintage V2-PE3安装设置与使用指南
- 时间:2026-08-17
-
- Windy怎么查看未来天气与时间轴使用技巧
- 时间:2026-08-17
-
- Yandex搜索引擎2026最新官方入口及使用技巧
- 时间:2026-08-14
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
