Heim > Java > javaLernprogramm > coverity&fortify1 – Schlechte Fehlerbehandlung: Zu weit gefasster Haken

coverity&fortify1 – Schlechte Fehlerbehandlung: Zu weit gefasster Haken

PHP中文网
Freigeben: 2017-07-15 18:12:18
Original
3760 Leute haben es durchsucht

1. Alarmbeschreibung:

Mehrere Catch-Blöcke sehen hässlich und umständlich aus, aber die Verwendung eines „prägnanten“ Catch-Blocks zum Erfassen von Ausnahmeklassen auf hoher Ebene (z. B. Exception) kann Ausnahmen verwirren, die eine besondere Behandlung erfordern, oder Ausnahmen abfangen, die nicht abgefangen werden sollten. Die Ausnahme wird abgefangen an dieser Stelle im Programm. Im Wesentlichen verfehlt das Abfangen von Ausnahmen, deren Umfang zu groß ist, den Zweck von „Java-klassendefinierten Ausnahmen“.


2. Risiko:

Dieser Ansatz kann sehr gefährlich sein, wenn mit zunehmender Programmgröße neue Ausnahmen ausgelöst werden. Neue Ausnahmetypen werden nicht bemerkt.

3. Beispiel:

try{
    //IOoperation
    //
}
catch(Exception ex){
    Log(ex);
}
Nach dem Login kopieren

Fortify empfiehlt, mögliche Ausnahmen separat zu behandeln. Da verschiedene Arten von Ausnahmen unterschiedliche Behandlungsmethoden erfordern, sollten Sie alle möglichen Ausnahmen in try{} auflisten und sie dann separat behandeln. Der richtige Code lautet wie folgt:

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);
}
Nach dem Login kopieren

 

Das obige ist der detaillierte Inhalt voncoverity&fortify1 – Schlechte Fehlerbehandlung: Zu weit gefasster Haken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage