? Ausnahmen können Java-Programme zum Absturz bringen , aber wenn richtig eingesetzt, ermöglichen sie auch Programmierer von Anwendungen, die mit unerwarteten Ereignissen umgehen können . Anzahl Ausnahmen häufig auftreten, wenn Programme , um Zahlen zu analysieren , Umwandlung von Text -Strings in numerische Werte zu versuchen. Wenn ein Java-Programm verwendet ein Verfahren, bei dem eine Reihe nicht dem erwarteten Typ , kann es werfen eine Nummer Format Exception. Durch das Verständnis, Ausnahmen , können Sie lernen, wie man Programme, die zuverlässige Funktionalität erstellen. Exception -Typen
Java-Programme werfen kann viele verschiedene Arten von Ausnahme. Die Nummer Format Exception ist die häufigste numerische Ausnahme. Eine Runtime- Ausnahme , erweitert sie die Illegal Argument Exception-Klasse . Normalerweise wird diese Ausnahme tritt auf, wenn Sie eine Methode , um zu versuchen , um eine Zeichenfolge als Zahl analysieren verwenden , aber der Inhalt der Zeichenfolge ist keine Zahl des richtigen Typs . Weil es eine ungeprüfte Ausnahme ist , können Ihre Programme ohne Ihr Integrated Development Environment warnt Sie über die möglichen Fehler zu kompilieren. Die Nummer Format Exception erfolgt nur, wenn ein Programm läuft unangebracht Eingang zu einem Verfahren , so können Sie nur entdecken , wenn die Anwendung ausgeführt wird .
Verursacht
der Programmiersprache Java Wrapper Klassen stellen Objekt Darstellungen der primitive Datentypen für Zahlen , einschließlich integer, float und double. Mit diesen Klassen können Programme String-Werte als numerische Typen zu analysieren , wie folgt:
Integer.parseInt ("3" );
Dieser Code wird ohne Fehler ausgeführt , weil der übergebene String -Parameter enthält ein Zahlenwert. Allerdings verursacht die folgenden Methodenaufruf Java eine Nummer Format Exception werfen , da die Zeichenfolge nicht enthält eine Zahl:
Integer.parseInt ("r" );
Der folgende Code verursacht auch die Ausnahme , denn obwohl der String eine Zahl ist , ist es nicht eine ganze Zahl :
Integer.parseInt ( "3.5" );
All diese Codeauszüge kompilieren und ausführen , so der Programmierer kann nur Kenntnis von der Fehlermeldung zur Laufzeit . Die Werte sind in der Regel nicht explizit , geliefert werden aber von einer externen Quelle oder variablen Wert zu lesen.
Fangen
Sie können Number Format Ausnahmen zu fangen, wenn Sie Ihre Programme sind wahrscheinlich, um sie zu werfen. Indem du deine Nummer Parsing-Code zu einem try-Block , dann liefert einen Haken schwarz nach , können Sie Programme erstellen, die weiterhin funktionieren wird , auch wenn eine Nummer Format Exception auftritt. Der folgende Beispielcode veranschaulicht diese Struktur :
try { Integer.parseInt ( zahlString ); } catch ( NumberFormatException numExc ) {System.out.println ( numExc.getMessage ()); }
Der Parse String in diesem Fall als eine variable Referenz dargestellt wird , so dass ihr Inhalt ist unbekannt. Wenn die Zeichenfolge Inhalte können nicht als ganze Zahl analysiert werden , wird der Code springt sofort zum catch-Block , wo man alternative Verarbeitung zur Verfügung stellen kann .
Werfen
Sowie ihn Ausnahmen können Entwickler Java-Programme , in denen sie werfen benutzerdefinierte Ausnahmen . Dies ist eine übliche Taktik mit ungeprüften Ausnahmen wie Number Format . Die folgenden geänderten Code demonstriert :
catch ( NumberFormatException numExc ) { throw new BadNumberException ();}
Dies ermöglicht Programmierern, ihre eigenen Exception-Klasse , die eine geprüfte Typ sein kann definieren , und um eine geeignete Bewältigungsstrategie für die Anwendung bereitzustellen.