Using such generic exceptions as Error, RuntimeException, Throwable, and Exception prevents calling methods from handling true, system-generated exceptions differently than application-generated errors.
Noncompliant Code Example
public void foo(String bar) throws Throwable { // Noncompliant
throw new RuntimeException("My Message"); // Noncompliant
}
Compliant Solution
public void foo(String bar) {
throw new MyOwnRuntimeException("My Message");
}
这个很容易理解啊.
打个简单的比方. 现在做一个登录有
用户不存在/密码错误...
这些错误类型, 如果你直接使用RuntimeException
代码要写成这样.捕捉异常
反之自定义异常实现如下:
捕捉异常
通过
message
判断处理异常逻辑有很多弊端, 比如message
是动态的, 那将无法准确的处理.当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段
kotlin
代码, 目前我是使用的这种处理方式.