Die Verwendung allgemeiner Ausnahmen wie Error, RuntimeException, Throwable und Exception verhindert, dass aufrufende Methoden echte, vom System generierte Ausnahmen anders behandeln als von der Anwendung generierte Fehler.
public void foo(String bar) throws Throwable { // Noncompliant throw new RuntimeException("My Message"); // Noncompliant }
public void foo(String bar) { throw new MyOwnRuntimeException("My Message"); }
这个很容易理解啊.
打个简单的比方. 现在做一个登录有
用户不存在/密码错误...
这些错误类型, 如果你直接使用RuntimeException
代码要写成这样.捕捉异常
反之自定义异常实现如下:
捕捉异常
通过
message
判断处理异常逻辑有很多弊端, 比如message
是动态的, 那将无法准确的处理.当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段
kotlin
代码, 目前我是使用的这种处理方式.说明的挺清楚了啊,方便捕获处理
Exception名字要有意义,RuntimeException名字没有意义
Exception直接抛的话,Nginx 会把你定义message 覆盖掉,导致看不到具体信息。
建议的做法是,自己定义一个exception,去继承 RuntimeException,这个就知道你的exception 是什么,也方便查找问题。
运行时异常不需要捕获