Journaux d'erreurs et gestion des exceptions qui sont souvent vus dans la zone Java

Par exemple, cela ne fait pas exception et est hors de question.

Pourquoi pas?

En premier lieu, le mécanisme appelé "exception" a été créé pour activer la description ** "Que dois-je faire lorsque le processus est ignoré pour cette raison?" ** (je ne pense pas que je suis en colère). .. L '"exception" qui est envoyée est exactement cette "raison pour ceci et cela", et même si on dit que "le traitement a été époustouflé pour une raison générale", il ne peut être renvoyé que comme "insensé". C'est **.

Ok, alors devrions-nous classer chaque raison comme ça et créer une classe d'exception?

pas bon. Bien sûr, je ne dis pas que c'est totalement inutile, mais ** j'ai quelque chose à faire avant cela **.

Décision de responsabilité

** Décidez "qui, jusqu'où, quoi faire". ** ** Par exemple, supposons qu'il y ait une opération consistant à "lire un certain fichier, l'analyser et le conserver comme objet". A ce moment (bien que ce soit un peu détaillé), quatre caractères apparaissent comme des caractères: "celui qui passe l'emplacement d'un certain fichier", "celui qui lit un certain fichier", "celui qui analyse ce qui est lu" et "celui qui le détient".

Que devraient faire ces gars et combien? Dans le bon sens, il faut supposer que "celui qui passe l'emplacement d'un fichier" passera au moins "quel serait l'emplacement du fichier", "(probablement) sous forme de chaîne", et "sans perte". Il y aura. Sur la base de cette hypothèse, "celui qui lit un certain fichier" n'a pas à penser à "quelque chose comme l'emplacement de ce fichier indique vraiment l'emplacement du fichier?" Même si vous allez lire et que vous n'avez pas le fichier, vous pouvez toujours vous plaindre (= exception), "Hé, je suis allé chercher les informations que vous m'avez données, n'est-ce pas?"

Pour le dire froidement, ça s'appelle CoC, ** Design by contract **. Quoi, "N'y a-t-il pas une exception!"? Qu'est-ce que tu racontes ** Je dis que l'exception est à utiliser lorsque le contrat n'est pas conservé **.

Utilisation des choses existantes

** Si l'argument est incorrect, soyez silencieux et lancez une IllegalArgumentException **. c'est tout.

...... C'est trop compliqué, alors je vais creuser un peu plus. Par exemple, supposons que vous prépariez l'API suivante. Il prend deux arguments et renvoie le résultat de a / b. (C'est juste un exemple, alors pardonnez-moi d'être trop remplaçant)

ex1.java


public int div(int a, int b){
    return a/b;
}

Cependant, il a été critiqué que ce n'était pas bon. Parce que div (1,0) provoquera ArithmeticException (il vaut peut-être mieux dire DivideByZeroException aux gens de .net, je suis aussi un groupe DBZE ...).

Que feriez-vous alors? Eh bien, nous aurons la validation.

La réponse est, bien entendu, "** dans certains cas **". Cela devrait être créé si l'utilisation prévue est de "rattraper les exceptions individuelles ensemble dans une certaine mesure", comme dans l'exemple précédent. Il est toujours inesthétique d'attraper de nombreuses exceptions. Inversement, si vous n'avez aucune raison de faire quelque chose **, vous devez utiliser l'existant **. Ce n'est pas difficile. Bref, la réinvention des roues est ridicule, c'est donc juste une question d'arrêt.

Résumé

** Gardez le contrat et profitez du codage! !! ** **

Aussi, ** je vous le demande, alors ne vous imitez pas simplement pour détruire le système de moule **. (Bien que je pense que cela devrait être dit à un idiot qui gère les valeurs de code avec des nombres bruts ...)

Recommended Posts

Journaux d'erreurs et gestion des exceptions qui sont souvent vus dans la zone Java
Questions sur la gestion des exceptions Java throw et try-catch
[Ruby / namespace] Approfondissez ":: ← this" que vous voyez souvent dans Ruby
Principes de base de la gestion des erreurs Java - L'histoire qui capture n'est prise qu'au premier plan
Techniques de gestion des exceptions en Java
Tirez parti de l'un ou l'autre pour la gestion des exceptions individuelles dans l'API Java Stream
Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Ceci et cela de la mise en œuvre du jugement en temps réel des dates en Java
Trouvez le maximum et le minimum des cinq nombres saisis en Java
Revue des connaissances «étranges Java» et Java souvent oubliées dans Java Bronze
Concernant les modificateurs transitoires et la sérialisation en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
Site recommandé pour les erreurs que vous voyez souvent
[Java] La différence entre les méthodes Stream.of () et Arrays.stream () que vous ne connaissez pas de manière inattendue
Gestion des exceptions Java?
[Java] Gestion des exceptions
☾ Java / Gestion des exceptions
À propos de la gestion des exceptions Java
Gestion des exceptions Java
Écrivez ABNF en Java et transmettez l'adresse e-mail
Classes et instances Java comprises dans la figure
Ceci et cela pour éditer ini en Java. : inieditor-java
[# 2 Java] Quelle est l'orientation de l'objet que vous entendez souvent?
[Java Silver] (Gestion des exceptions) À propos des instructions try-catch-finally et try-with-resource
L'histoire que .java est également construite dans Unity 2018
Syntaxe et conditions d'occurrence d'exception pouvant être utilisées lors de la comparaison avec null en Java
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
Crier Java au cœur des technologies-Thèmes et technologies élémentaires que les ingénieurs Java devraient poursuivre en 2017-
Causes et remèdes pour l'exception «ServletException: Erreur lors de l'instanciation de la classe de servlet» lors du déploiement d'applications Java
Filtrez la liste facultative Java n ° 2 utile en entreprise et obtenez la première valeur