《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 日志配置命名

在这里插入图片描述

发布了162 篇原创文章 · 获赞 219 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/hadues/article/details/103967061