Quelle: Medium Dieser Beitrag wird Ihnen helfen, besser zu verstehen, wie Sie Ausnahmen in Java effektiv behandeln. Der Umgang mit Java-Ausnahmen kann eine Herausforderung sein. Es kann schwierig sein, zu bestimmen, welche Java-Ausnahmen behandelt, welche erneut ausgelöst und welche einfach ignoriert werden sollen. Es gibt jedoch eine Reihe nützlicher Richtlinien, die Ihnen effektiv dabei helfen können, Ausnahmen zu behandeln und neue Anwendungen zu erstellen. Machen wir uns mit ihnen bekannt.
- Seien Sie vorsichtig, was Sie protokollieren.
- Ignorieren Sie ausgelöste Ausnahmen nicht.
- Verwenden Sie einen globalen Ausnahmehandler.
- Schließen Sie Ressourcen nicht manuell.
- Frühzeitig auslösen und Ausnahmen später behandeln.
- Java-Ausnahmen sollten nicht protokolliert und erneut ausgelöst werden.
- Unterdrückte Ausnahmen untersuchen.
- Deklarieren Sie Ausnahmen in der throw-Anweisung genau.
- Behandeln Sie zuerst die offensichtlichste Ausnahme.
- Verwenden Sie moderne Semantik zur Ausnahmebehandlung.
1. Seien Sie vorsichtig, was Sie protokollieren
Softwareentwickler sollten sich stets der Rechte ihrer Kunden auf Sicherheit und Datenschutz bewusst sein.- Ein Java-Programm kann Daten auf andere Systeme verschieben und eine große Anzahl von Entwicklern und Administratoren kann damit arbeiten (einschließlich der Behebung von Fehlern).
- Wenn in den Protokolldateien sensible Daten aufgezeichnet werden, verstößt Ihr Unternehmen gegen die Sicherheitsanforderungen und Sie verlieren möglicherweise Ihren Job.
2. Ignorieren Sie ausgelöste Ausnahmen nicht
Fangen Sie keine Ausnahme ab und ignorieren Sie sie dann. Das Ausblenden von Ausnahmen ist keine gute Möglichkeit, sie in Java zu behandeln. Notieren Sie sich mindestens den Namen der Ausnahme und die zugehörige Meldung. Auf diese Weise können Informationen zum Problem in Ihrem Eintrag gefunden werden. Das Debuggen von Java-Anwendungen aufgrund versteckter Ausnahmen ist unglaublich schwierig.3. Verwenden Sie einen globalen Ausnahmebehandler
Während der Programmausführung wird es immer einige Ausnahmen geben, die zuvor nicht in Ihrem Code abgefangen wurden. Fügen Sie daher immer einen globalen Ausnahmehandler hinzu, um nicht abgefangene Ausnahmen zu behandeln. Dies ermöglicht nicht nur die Protokollierung und Behandlung der Ausnahme, sondern verhindert auch, dass die Anwendung abstürzt, wenn zur Laufzeit eine Ausnahme ausgelöst wird.4. Schließen Sie Ressourcen nicht manuell
Eine weitere wichtige Empfehlung bei der Behandlung von Java-Ausnahmen besteht darin, der JVM zu erlauben, die Methode close() für die zu schließenden Ressourcen aufzurufen . Versuchen Sie nicht, sie selbst zu schließen. Dies kann leicht erreicht werden, indem die Ressourcen im Modul try-resources initialisiert werden . Semantik:public class TryWithResourcesExample {
public static void main(String[] args) throws Exception {
try (Door door = new Door()) {
door.swing();
} catch (Exception e) { ..... }
} finally { .....}
}
}
Wie Sie sehen, schließt die JVM nach Abschluss des try...catch-Blocks die Ressource für Sie, wodurch die Möglichkeit komplexer und schwer zu behebender Ressourcenlecks ausgeschlossen wird.
5. Ausnahmen früh auslösen und später behandeln
Lösen Sie eine Ausnahme aus, wenn in Ihrem Code eine Ausnahmebedingung auftritt. Warten Sie nicht, bis irgendwelche Codezeilen ausgeführt werden, bevor Sie die Methode verlassen, in der Sie sich befinden. Beim Abfangen von Ausnahmen muss die Funktion am Ende der Methode platziert werden. Dadurch wird die Anzahl der Catch- Blöcke in Ihren Methoden reduziert, sodass Ihr Code einfacher zu lesen und zu warten ist.6. Java-Ausnahmen sollten nicht protokolliert und erneut ausgelöst werden
Wenn eine Ausnahme auftritt, führen Sie einen der folgenden Schritte aus:- Arbeiten Sie weiter mit Ihrem Programm, während Sie die Ausnahme protokollieren.
- Lösen Sie die Ausnahme erneut aus und lassen Sie eine andere Art der Datenprotokollierung zu.
try {
Class.forName("com.min.Example");
} catch (ClassNotFoundException ex) {
log.warning("Class was not found.");
throw ex;
}
Dies führt dazu, dass Code dupliziert wird und Protokolldateien mit doppelten Einträgen verstopft werden, was die Diagnose des Codes erheblich erschwert.
GO TO FULL VERSION