《Java开发手册》v1.5.0 华山版编码规约解读之异常处理
程序员文章站
2024-03-24 14:43:46
...
《Java开发手册》v1.5.0 华山版编码规约解读之异常处理
1.1 空指针和数组索引越界异常自己处理
1.2 不要对大段代码进行 try catch
1.3 思考什么时候应该在方法上抛出异常
1.4 使用 try with resource 方式关闭资源
原来我们的写法可能是这样的
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
1.6 空指针产生的场景
1.7 自定义异常的使用场景
也就是说如果必须抛出Exception 或Throwable 类型的异常时候,想修复这类的sonar 代码问题,那么自定义异常是一个不错的选择。
1.8 日志处理
1.8.1 统一使用lombok 插件写日志
关于用法Spring Boot 2.x 最佳实践之 lombok集成
1.8.2 日志保留期限
1.8.3 日志配置命名
上一篇: 并查集详解及底层实现
下一篇: Spring——依赖注入杂记