Maison > Java > javaDidacticiel > coverity&fortify1--Mauvaise gestion des erreurs : prise trop large

coverity&fortify1--Mauvaise gestion des erreurs : prise trop large

PHP中文网
Libérer: 2017-07-15 18:12:18
original
3679 Les gens l'ont consulté

1. Description de l'alarme :

Plusieurs blocs catch semblent laids et encombrants, mais l'utilisation d'un bloc catch "concis" pour capturer des classes d'exceptions de haut niveau (telles que Exception) peut confondre les exceptions qui nécessitent un traitement spécial, ou intercepter des exceptions qui ne devraient pas l'être. à ce stade du programme. Essentiellement, détecter les exceptions dont la portée est trop importante va à l’encontre de l’objectif des « exceptions définies par la classe Java ».


2. Risque :

Cette approche peut être très dangereuse lorsque de nouvelles exceptions sont levées à mesure que le programme se développe. Les nouveaux types d’exceptions ne seront pas remarqués.

3. Exemple :

try{
    //IOoperation
    //
}
catch(Exception ex){
    Log(ex);
}
Copier après la connexion

Fortify vous recommande de gérer les exceptions possibles séparément. Étant donné que différents types d'exceptions nécessitent des méthodes de gestion différentes, vous devez énumérer toutes les exceptions possibles dans try{}, puis les gérer séparément. Le code correct est le suivant :

try {
    //IOoperation
    //
}
catch (IOException e) {
    logger.error("doExchange failed", e);
}
catch (InvocationTargetException e) {
    logger.error("doExchange failed", e);
}
catch (SQLException e) {
    logger.error("doExchange failed", e);
}
Copier après la connexion

 

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal