当前位置: 代码网 > it编程>编程语言>Java > Java异常处理怎么学?一文详解try catch finally使用技巧

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

2026年08月03日 Java 我要评论
一、什么是异常程序运行时出现非正常情况,打断正常执行流程。语法没错才叫异常;语法写错属于编译错误,不算异常。二、异常体系(顶层:throwable)error 错误 虚拟机严重问题,程序无法处理,不用

一、什么是异常

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

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

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

三、五个关键字用法

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

throw vs throws

  • throws:声明异常,被动报备
  • 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 声明异常

八、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com