Heim >Java >javaLernprogramm >coverity&fortify1 – Schlechte Fehlerbehandlung: Zu weit gefasster Haken
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“.
Dieser Ansatz kann sehr gefährlich sein, wenn mit zunehmender Programmgröße neue Ausnahmen ausgelöst werden. Neue Ausnahmetypen werden nicht bemerkt.
try{ //IOoperation // } catch(Exception ex){ Log(ex); }
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); }
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!