教程中心 / Java教程 / 异常最佳实践

异常处理最佳实践

10分钟 异常处理

异常处理原则

只捕获能处理的异常
不过度捕获异常
提供有意义的异常信息
记录日志而非直接输出

正确示例

 try {
    Integer.parseInt(str);
} catch (NumberFormatException e) {
    logger.error("数字转换失败: " + str, e);
    throw new BusinessException("请输入有效的数字", e);
} 

反模式示例

 try {
    Integer.parseInt(str);
} catch (Exception e) {
    e.printStackTrace();
} 

异常链使用

 try {
    readConfig();
} catch (IOException e) {
    throw new ConfigurationException("配置文件读取失败", e);
} 

异常继承体系选择

场景推荐继承
可恢复错误Exception(受检异常)
编程错误RuntimeException(非受检异常)
系统级错误Error(不捕获)

小结

  • 捕获具体异常,避免捕获所有异常
  • 使用异常链保留原始异常信息
  • 记录日志而不是直接输出堆栈
  • 选择合适的异常继承体系
☕ Java 在线代码编辑器
📝 运行结果