Java -Ausnahmehandling

Java -Ausnahmehandling
Wenn der normale Fluss der Programmausführung für einen Fehler unterbricht, wird dies als Ausnahme bezeichnet. Diese Art von Ereignis kann durch Verwendung behandelt werden Ein Versuchsfänger Block. Eine Ausnahme ist ein Objekt, das verwendet wird, um den Fehler zu fangen und die Anweisung basierend auf der Fehlerbedingung auszuführen, die als Ausnahmebehandlung bezeichnet wird. Hauptsächlich werden zwei Fehlertypen durch Ausnahmebehandlung behandelt. Diese sind Zeit zusammengestellt Fehler und Laufzeit Fehler. Der Laufzeit Fehler werden durch Ausnahmebehandlung behandelt. Wie Sie mit Ausnahmen in Java umgehen können, wird in diesem Tutorial erklärt.

Syntax:

Die Syntax von Der Versuch Block ist unten angegeben.

versuchen
Aussage 1… n

catch (exceptionType var)
Aussage 1… n

Endlich
Aussage 1… n

Wenn hier eine Ausnahme im Try -Block auftritt, wird die Ausnahme in den Catch -Block geworfen, und der schließlich ist der Block hier optional. Der Code des endgültigen Blocks führt, ob eine Ausnahme eintritt oder nicht.

Beispiel-1: Ausnahmebehandlung mit einem einzigen Fangblock

Das folgende Beispiel zeigt die Verwendung des Ausnahmeregelung mit einem einzelnen Fangblock. Ein Dateiname wird als Eingabe angenommen und erstellt ein Objekt von BufferedReader, um eine Datei zum Lesen zu öffnen. Wenn der Dateiname vorliegt, wird der Inhalt der Datei nach Zeile gelesen und gedruckt. Wenn die Datei nicht vorhanden ist, wird eine Ausnahme generiert, und eine Fehlermeldung wird gedruckt.

Java importieren.io.BufferedReader;
Java importieren.io.Filerader;
Java importieren.io.IoException;
Java importieren.Util.Scanner;
öffentliche Klasse AUSS1
public static void main (String [] args)
// Erstellen Sie ein Scannerobjekt
Scanner in = neuer Scanner (System.In);
System.aus.print ("den Dateinamen eingeben:");
// Nehmen Sie String -Daten vom Benutzer ab
String Dateiname = in.nächste();
versuchen
// Erstellen Sie ein Leserobjekt
BufferedReader reader = neuer bufferedReader (neuer fileReader (Dateiname));
// Lesen Sie die erste Zeile, wenn die Datei vorliegt
String Line = Reader.Zeile lesen();
während (Linie != null)
// die Linie drucken
System.aus.println (Linie);
// Lesen Sie die nächste Zeile
Zeile = Leser.Zeile lesen();

// das Leserobjekt schließen
Leser.schließen();
// Schließen Sie das Scannerobjekt
In.schließen();
catch (ioException e)
// Die Fehlermeldung drucken
System.aus.println ("Datei existiert nicht");


Ausgang:

In der folgenden Ausgabe, 'Hallo.txt' wird als Dateiname angegeben, der nicht existiert. Die folgende Nachricht wird also gedruckt.

Nächstes Mal, Datei1.txt wird als Dateiname angegeben, und die Ausgabe zeigt den Inhalt der Datei an.

Beispiel-2: Ausnahmebehandlung mit mehreren Fangblock

Wie Sie mehrere Fangblöcke verwenden können, um mehrere Ausnahmen zu verarbeiten, wird im folgenden Beispiel angezeigt. Hier werden drei Fangblöcke deklariert. Der erste Fangblock fängt den arithmetischen Fehler auf, wenn eine unlogische arithmetische Operation durchgeführt wird. Der zweite Catch Bock fängt den außerirdischen Fehler des Arrays auf. Der dritte Catch -Block fängt den numerischen Wertfehler an, wenn ein Zeichen- oder String -Wert als Array -Wert angegeben wird. Im Code wird ein Array mit vier Indizes mit den ganzzahligen Werten deklariert und initialisiert, die vom Benutzer entnommen werden. Die Array -Werte werden mit einer Schleife gedruckt. Am Ende des Try -Blocks erfolgt eine Divisionsbetrieb.

Java importieren.Util.Scanner;
öffentliche Klasse außer2
öffentliche statische Leere Main (String [] Args)

versuchen

// ein numerisches Array deklarieren
int num_arr [] = new int [4];
// Erstellen Sie ein Scannerobjekt
Scanner in = neuer Scanner (System.In);
System.aus.println ("vier Zahlen eingeben:");
// die Schleife viermal wiederholen
für (int i = 0; i < 4; i++)
// Eingabenummer
int n = in.NextInt ();
// Wert Wert zu Array zuweisen
num_arr [i] = n;

System.aus.println ("Array -Werte sind:");
// die Schleife fünfmal wiederholen
für (int i = 0; i < 4; i++)
// Drucken Sie die Array -Werte
System.aus.println (num_arr [i]);

// den Wert dividieren und ausdrucken
int num = 50/0;
System.aus.print (num);
// Schließen Sie das Scannerobjekt
In.schließen();

Catch (AritheMeTexception E)

System.aus.println ("Keine Nummer ist durch 0 teilbar);

catch (arrayIndexoutofboundSexception e)

System.aus.println ("Aus dem Array -Indexwert ist aufgetreten");

fangen (Ausnahme E)

System.aus.println ("Zahlenwert ist nicht angegeben");


Ausgang:

Die folgende Ausgabe zeigt, dass Array -Werte ordnungsgemäß eingefügt und gedruckt werden, der dritte Fangblock wird jedoch ausgeführt, da 50 durch 0 geteilt wird, was ein Fehler ist.

Das Programm wird zum zweiten Mal ausgeführt. Wenn ein Stringwert als Array -Wert angegeben wird, wird die zweite Ausnahme generiert und die Anweisung des zweiten Fangblocks wird ausgeführt.

Beispiel-3: Ausnahmebehandlung mit Try-Catch-final-Block

Die Verwendung von endgültigem Block mit dem Try-Catch-Block wird im folgenden Beispiel angezeigt. Der Code von Block wird ausgeführt, wenn eine Ausnahme eintritt oder nicht. Im Code wird der Benutzer ein Ganzzahlwert entnommen. Wenn der Benutzer einen String -Wert angibt, dann InputMisMatchException

generiert und druckt die Nachricht aus dem Fangblock. Das Scannerobjekt wird in der geschlossen Endlich Blockieren, wenn die Ausnahme generiert wird oder nicht.

Java importieren.Util.Scanner;
Java importieren.Util.InputMisMatchException;
öffentliche Klasse außer 3
public static void main (String [] args)
// Erstellen Sie ein Scannerobjekt
Scanner in = neuer Scanner (System.In);
System.aus.print ("eine Nummer eingeben:");
versuchen
// Nehmen Sie String -Daten vom Benutzer ab
int nummer = in.NextInt ();
// die Nummer drucken
System.aus.println ("Der Wert von number =" + number);
catch (inputMisMatchexception e)
// Fehlermeldung drucken
System.aus.println ("String -Wert wird nicht akzeptiert.");

Endlich
// Schließen Sie das Scannerobjekt
In.schließen();
System.aus.println ("aus dem Programm gekündigt");


Ausgang:

78 wird in der folgenden Ausgabe als Eingabewert nach der Ausführung des Codes angegeben. Hier wird also keine Ausnahme generiert. Die Nachricht aus dem endgültigen Block wird später gedruckt.

Nächste, Hallo wird als Eingabe nach der Ausführung des Codes gegeben, der eine Zeichenfolge ist. Die Ausnahme wird also generiert und die Fehlermeldung aus dem Fangblock gedruckt. Die Nachricht aus dem endgültigen Block wird später gedruckt.

Abschluss:

Die Ausnahmebehandlung ist eine sehr wichtige und nützliche Funktion jeder Programmiersprache, mit der die tatsächliche Fehlermeldung des Benutzers ausgeblendet und die Fehlermeldung des Menschen gelesen werden kann, damit der Benutzer den Fehler ordnungsgemäß versteht. Dieses Tutorial hilft dem Benutzer, verschiedene Möglichkeiten zur Anwendung der Ausnahmebehandlung in Java zu lernen und seinen Code angemessener zu machen.