一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Java异常处理怎么学?一文详细说明trycatchfinally使用技巧

时间:2026-08-06 07:38:50 编辑:袖梨 来源:一聚教程网

Java异常处理怎么学?一文详细说明trycatchfinally使用技巧需要先看清适用场景和关键步骤,避免只记结论却忽略实际限制。

一、什么是异常

程序运行时出现非正常情况,打断正常执行流程。语法没错才叫异常;语法写错属于编译错误,不算异常。

Java异常处理怎么学?一文详解trycatchfinally使用技巧

二、异常体系(顶层:Throwable)

  1. Error 错误 虚拟机严重问题,程序无法处理,不用捕获。例:栈溢出、内存溢出 OOM。
  2. Exception 异常(我们要处理)
  1. 受检异常(编译异常):编译强制要求处理,要么 try-catch 捕获,要么 throws 抛出。例:IO 异常、文件不存在、线程睡眠异常。
  2. 运行时异常(RuntimeException):编译不报错,运行才出问题,大多是代码 bug,可处理可不处理。 常见:空指针、数组越界、除数为 0、类型强转异常、非法参数。

三、五个关键字用法

  1. try:包裹可能出错的代码
  2. catch:捕获对应异常并处理
  3. finally:无论是否异常基本都会执行,用来关闭流、释放资源;只有System.exit()终止 JVM 时不执行
  4. throws:写在方法后面,声明该方法可能抛出异常,把异常交给调用方处理
  5. throw:方法内部手动主动抛出一个异常对象

throw vs throws

  1. throws:声明异常,被动报备
  2. throw:抛出异常,主动制造报错

四、多 catch 规则

多个 catch 时,子类异常必须写在父类前面,否则父类先匹配,后面子类永远走不到,编译报错。

五、自定义异常

业务场景专用,一般继承 RuntimeException,不用强制声明 throws,方便全局统一处理报错信息。

运行

public class MyBizException extends RuntimeException {    public MyBizException(String msg) {        super(msg);    }}

六、写代码小规范

  1. 别写空 catch,至少打印异常信息方便排错
  2. 尽量捕获具体异常,不要无脑直接捕获 Exception
  3. 别用异常代替 if 判断做逻辑校验,损耗性能
  4. JDK7 + 可用 try-with-resources 自动关闭流,替代手写 finally 关资源

七、注意事项

  1. Error 不可处理,Exception 可处理
  2. 编译异常必须处理,运行时异常可不处理
  3. finally 绝大多数情况必执行
  4. throw 抛异常,throws 声明异常

八、总结

热门栏目