Introduction, le but de ce document
--Le flux est d'éradiquer catch (Exception e) {} et d'écrire le poème qui suit.
- Je l'ai écrit comme une exception, mais qu'est-ce qu'une erreur? Comment dois-je gérer cela? Considérer
- Je veux dire au programmeur: "Il vaut mieux ne pas faire taire l'exception."
- Je veux dire au concepteur: "Nous devrions concevoir pour décider comment gérer les exceptions ultra-rares."
Comportement d'un programmeur
―― "Ah, c'est une exception. Cela ne se produit pas, donc je ne suis pas sûr, donc vous pouvez simplement le tuer. Catch (Exception e) {} est OK."
«C'est le pire.
Changeons notre position et réfléchissons-y.
- Le côté d'exception de lancer lance parce qu'une situation anormale s'est produite (même si c'est très rare).
Que se passe-t-il si vous faites taire l'exception?
- Même si une exception se produit, elle continue de fonctionner normalement comme si de rien n'était.
«C'est effrayant, mais les parents continuent de l'ignorer même s'ils disent:" Mon enfant a mal à la tête! "
«N'est-ce pas irréparable plus tard? Le regrettez-vous?
Pourquoi le programmeur (utilisateur) tue-t-il silencieusement l'exception?
―― Les exceptions gérées par la conception sont gérées correctement, n'est-ce pas? (Nouvelle tentative d'erreur de communication)
―― Le problème est de savoir comment gérer les exceptions qui ne sont pas décidées par conception. Par conséquent, le programmeur choisit "Le traitement n'a pas été décidé -> La mise à mort silencieuse est correcte".
Alors, que devons-nous faire avec des exceptions indécises?
―― Laissons "l'exception qui n'a pas été décidée pour gérer → catch and throw tel quel".
――C'est la bonne réponse.
Pour ceux qui se demandaient: "Quoi? Puis-je lancer une exception que je ne comprends pas?"
«En premier lieu, les exceptions qui ne sont pas gérées par conception sont des exceptions extrêmement rares. (Il n'y a pas de design car il est pratiquement impossible de se produire)
«Donc ça n'arrive presque jamais. Donc, que vous tuiez ou jetiez silencieusement, le code n'est pas réellement exécuté, donc dans ce sens c'est le même, peu importe celui que vous choisissez.
IfMais si vous choisissez l'un ou l'autre, le lancer est meilleur que le meurtre silencieux si vous pensez à * si cela arrive *. (Cependant, quand cela arrivera vraiment, ce sera l'allié le plus puissant)
À ceux qui pensaient: "C'est une exception très rare, et si cela n'arrive presque jamais, vous pouvez le tuer en silence."
«Je pense que cela ne se produira presque jamais maintenant, mais quand il entre en phase d'exploitation, cela se produit soudainement.
- Il y a une limite à la portée (capacité de conception) que les humains peuvent imaginer. La réalité va au-delà de cela à la légère.
«Si vous vous tuez en silence, lorsque la réalité dépasse, vous ne pourrez plus sortir de vos mains ou de vos jambes. Il y a beaucoup de choses que vous pouvez faire pendant la phase de développement, mais vous mourrez pendant la phase d'exploitation.
À ceux qui pensaient: "Non, savez-vous ce que signifie lancer une exception? Le système s'arrêtera? Je n'ai pas le courage d'écrire une chose aussi effrayante."
- Je comprend ce que tu ressents. Pardon. Écrivez la vérité.
――En fait, ce problème est mal conçu. Pourquoi?
«C'est parce que nous n'avons pas conçu" Comment gérer les exceptions ultra-rares? " Alors concevons.
Pour ceux qui se demandaient: "Non, comment concevez-vous une exception très rare?"
――Par exemple, que diriez-vous de dire "Attrapez une exception très rare dans la classe supérieure, enregistrez-la comme ERREUR et continuez le système"?
――Voyez, vous pouvez lancer des exceptions très rares en toute tranquillité d'esprit.
Pour ceux qui pensaient: "Non, même si une exception très rare s'est produite, c'est un problème avec une conception aussi bâclée de cracher des journaux et de continuer le système."
- Pardon. Je ne sais pas comment récupérer correctement d'une exception très rare (causée par une cause non identifiée).
――En premier lieu, c'est un cas très rare, alors soyez patient avec uniquement la sortie du journal.
Pour ceux qui pensaient: "Non, même avec des exceptions extrêmement rares, la cause peut être comprise? C'est un problème si vous ne la concevez pas correctement."
«C'est super rare, n'est-ce pas? Cela ne se produit généralement pas, non? Concevez-vous vraiment?
――Vous ne pouvez pas simplement le concevoir, non? Cela augmentera le nombre de personnel pour le montage, les tests et l'utilisation, n'est-ce pas?
«Ce n'est pas rentable, n'est-ce pas? Êtes-vous prêt à le supporter?
――Alors, tu le fais vraiment?