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

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

PHP中文网
PHP中文网original
2017-07-15 18:12:183651parcourir

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);
}

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);
}

 

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!

Déclaration:
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