欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

程序员文章站 2024-03-24 14:43:46
...

1.1 空指针和数组索引越界异常自己处理

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.2 不要对大段代码进行 try catch

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.3 思考什么时候应该在方法上抛出异常

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.4 使用 try with resource 方式关闭资源

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理
原来我们的写法可能是这样的

public static void main(String[] args) {
    FileInputStream inputStream = null;
    try {
        inputStream = new FileInputStream(new File("test"));
        System.out.println(inputStream.read());
    } catch (IOException e) {
        throw new RuntimeException(e.getMessage(), e);
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                throw new RuntimeException(e.getMessage(), e);
            }
        }
    }
}

建议JDK7 之后,如今大多用JDK8 了,因此建议今后这么写

public static void main(String[] args) {
    try (FileInputStream inputStream = new FileInputStream(new File("test"))) {
        System.out.println(inputStream.read());
    } catch (IOException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
}
  • 利用try-with-resource语法更优雅的关闭资源,且代码更简洁。
  • 使用下面这种方式打开的资源使用完毕后会自动关闭。
try(资源一;资源二){   
.... }catch (IOException e) {
         throw new RuntimeException(e.getMessage(), e);  
}
  • 值得注意的是,如果有多个资源,那么最后一个资源不需要加分号

1.5 不要在try 和 finally 里return

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.6 空指针产生的场景

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.7 自定义异常的使用场景

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

也就是说如果必须抛出Exception 或Throwable 类型的异常时候,想修复这类的sonar 代码问题,那么自定义异常是一个不错的选择

1.8 日志处理

1.8.1 统一使用lombok 插件写日志

关于用法Spring Boot 2.x 最佳实践之 lombok集成

1.8.2 日志保留期限

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理

1.8.3 日志配置命名

《Java开发手册》v1.5.0 华山版编码规约解读之异常处理