Using such generic exceptions as Error, RuntimeException, Throwable, and Exception prevents calling methods from handling true, system-generated exceptions differently than application-generated errors.
public void foo(String bar) throws Throwable { // Noncompliant
throw new RuntimeException("My Message"); // Noncompliant
}
public void foo(String bar) {
throw new MyOwnRuntimeException("My Message");
}
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个很容易理解啊.
打个简单的比方. 现在做一个登录有
用户不存在/密码错误...
这些错误类型, 如果你直接使用RuntimeException
代码要写成这样.捕捉异常
反之自定义异常实现如下:
捕捉异常
通过
message
判断处理异常逻辑有很多弊端, 比如message
是动态的, 那将无法准确的处理.当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段
kotlin
代码, 目前我是使用的这种处理方式.说明的挺清楚了啊,方便捕获处理
Exception名字要有意义,RuntimeException名字没有意义
Exception直接抛的话,Nginx 会把你定义message 覆盖掉,导致看不到具体信息。
建议的做法是,自己定义一个exception,去继承 RuntimeException,这个就知道你的exception 是什么,也方便查找问题。
运行时异常不需要捕获