L'utilisation d'exceptions génériques telles que Error, RuntimeException, Throwable et Exception empêche les méthodes appelantes de gérer les vraies exceptions générées par le système différemment des erreurs générées par l'application.
public void foo(String bar) throws Throwable { // Noncompliant
throw new RuntimeException("My Message"); // Noncompliant
}
public void foo(String bar) {
throw new MyOwnRuntimeException("My Message");
}
C'est facile à comprendre.
Détecter les exceptionsUtilisons une analogie simple. Maintenant, pour établir une connexion, le code doit être écrit comme ceci.
用户不存在/密码错误...
这些错误类型, 如果你直接使用RuntimeException
Au contraire, l'exception personnalisée est implémentée comme suit :
message
. Par exemple, simessage
est dynamique, il ne sera pas traité avec précisionBien sûr, nous pouvons également le faire. définir un type d'exception général, il sera plus précis de juger par le code métier, et cela réduira également la définition des types d'exception et réduira la redondance du code. Vous trouverez ci-dessous un morceau de code
kotlin
, qui est le. façon dont je l'utilise actuellement.message
判断处理异常逻辑有很多弊端, 比如message
是动态的, 那将无法准确的处理.当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段
kotlin
L'explication est assez claire, ce qui la rend facile à capturer et à traiter
Les noms d'exception doivent être significatifs, les noms RuntimeException n'ont aucun sens
Si vous lancez directement une exception, Nginx écrasera votre message défini et vous ne pourrez pas voir les informations spécifiques.
L'approche recommandée consiste à définir vous-même une exception et à hériter de RuntimeException. Cela vous aidera à connaître votre exception et facilitera la recherche de problèmes.
Les exceptions d'exécution n'ont pas besoin d'être interceptées