Heim  >  Artikel  >  Java  >  Endlich in Java

Endlich in Java

WBOY
WBOYOriginal
2024-08-30 16:15:28585Durchsuche

Der folgende Artikel bietet einen Überblick über Endlich in Java. Schließlich handelt es sich um einen Codeblock, der zusammen mit Try und Catch verwendet wird. Enthält schließlich den Codeblock, der ausgeführt werden muss, unabhängig davon, ob eine Ausnahme auftritt oder nicht. Die im „finally“-Block geschriebenen Anweisungen werden immer ausgeführt, unabhängig davon, ob im try-Block ein Fehler aufgetreten ist oder nicht. Schließlich eignet sich der Block zum Schließen von Dateien oder einer Datenbankverbindung, um sicherzustellen, dass Sie keinen Speicherfehler aufgrund einer geöffneten Datei oder einen Datenbankfehler aufgrund einer offenen Verbindung oder einen Fehler bei der maximalen Verbindung erhalten. Es stellt außerdem sicher, dass jeder Fehler, der im Code auftritt, ordnungsgemäß behandelt wird.

WERBUNG Beliebter Kurs in dieser Kategorie FINANZMODELLIERUNG & BEWERTUNG – Spezialisierung | 51 Kursreihe | 30 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

try {
//block of code that may cause an exception
}
catch {
//Handling the error occurred in try block
}
finally {
//code that should always execute
}

Wie funktioniert Endlich in Java?

Hier werden wir einen Fehler auslösen oder einen fehlerhaften Code schreiben, der zu einem Fehler führen und schließlich die Ausführung blockieren würde.

Code:

class ExampleFinally
{
public static void main(String args[]) {
try{
int result = 1/0;
System.out.println(result);
catch(ArithmeticException e){
System.out.println("Divide by Zero Error");
}
/* Finally block will always execute
* even when we have created an error
Block */
finally{
System.out.println("Gracefully Handling Error in Finally");
}
System.out.println("Execution complete out of Try Catch Finally block");
}
}

Ausgabe:

Endlich in Java

Erklärung:

Im obigen Programm haben wir eine Zahl von Null dividiert, was wir bereits getan haben.

  • Fehler in „Endlich“ würdevoll behandelt.

Und nach dem Try-Catch-Block haben wir schließlich einen Codeblock geschrieben, der außerhalb von allem liegt, was gedruckt wurde.

  • Ausführung außerhalb des Try-Catch-Endlich-Blocks abgeschlossen.

Ein weiteres Beispiel: Wir würden sehen, wo innerhalb des try-catch-finally-Blocks keine Ausnahme auftreten würde, und sehen, was passiert.

Code:

class ExampleFinally
{
public static void main(String args[]) {
try
{  int result = 100/10;
System.out.println(result);
System.out.println("try code block");
}
catch (Exception e)
{
System.out.println("catch code block");
}
finally
{
System.out.println("finally code block");
}
}
}

Ausgabe:

Endlich in Java

Erklärung:

Im obigen Programm haben wir keinen Code geschrieben, der einen Fehler verursachen kann. Der Code wurde im Try-Block erfolgreich ausgeführt, aber Sie können dennoch sehen, dass der Final-Block ausgeführt und die darin enthaltene Nachricht gedruckt wurde.

  • endlich Codeblock

Zuletzt blockieren Sie die Verwendung im Java-Programm

Das Öffnen einer Datei zum Lesen oder Schreiben erfordert das Öffnen einer Datei und das anschließende Puffern des Streams. Außerdem sollten wir darauf achten, die geöffnete Datei zu schließen, damit keine Dateiverarbeitungs-, E/A- oder Festplattenfehler auftreten.

Code:

import java.io.*;
public class ReadingFromFile
{
public static void main(String[] args)throws Exception
{
FileReader fr = null;
try {
fr = new FileReader("/Users/cdp/Documents/testing/python virtual/java/myfile.txt");<>
System.out.println("Opening the file");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
System.out.println("Closing the file ");
fr.close();
} catch (IOException e) {
System.out.println("unrecoverable Error occurred");
e.printStackTrace();
}
}
System.out.println("Exiting Finally block");
}
}
}

Ausgabe (Datei existiert nicht):

Endlich in Java

Ausgabe (Datei vorhanden):

Endlich in Java

Im obigen Beispiel haben wir versucht, eine Datei zu öffnen und sie aus einem Dateipfad in den Puffer einzulesen. Wenn die Datei vorhanden ist und wir sie lesen können, werden keine Fehler ausgegeben und der Dateipuffer wird im „finally“-Block geschlossen, wenn er nicht null ist. Selbst wenn beim Lesen der Datei ein Fehler auftritt, beispielsweise aufgrund einer Berechtigung, wird die Datei auch im endgültigen Block geschlossen.

Bedeutung

  • Schließlich muss der Block immer mit einem Try-Block verknüpft sein; Wir können den Use-Finally-Block nicht ohne einen Try-Block schreiben. Die Anweisungen, die Sie in den „finally“-Block schreiben, werden immer unabhängig vom Try-Blockcode ausgeführt, ob ein Fehler auftritt oder nicht.
  • Schließlich ist der Block kein obligatorischer Block; Wir können den Try- und Catch-Block ohne den Final-Block schreiben. Nehmen wir an, wir möchten nur Fehler für alle Benutzereingaben abfangen, bei denen die Eingabe fehlerhaft ist.
  • Wenn immer noch kein Fehler aufgetreten ist, wird der Block schließlich ausgeführt. Wenn ein Fehler auftritt, wird der erste Catch-Block ausgeführt, dann schließlich.
  • Alle Ausnahmen verhalten sich im „finally“-Block gleich. Der Block würde für alle Ausnahmen normal ausgeführt.
  • Schließlich wird der Block auch dann ausgeführt, wenn im Try-Block eine Break-, Return- oder Continue-Anweisung vorhanden ist.

Wann wird Final nicht ausgeführt?

Bis jetzt haben wir gesehen, wann und wie der Block schließlich ausgeführt wird.

Aber es kann bestimmte Szenarien geben, in denen der Block letztendlich nicht ausgeführt wird.

  • There could be a thread getting executed; it is most likely to be the main thread where program execution is happening, and abruptly it dies, then the finally block won’t be getting executed.
  • If in the try or catch block we have used System class with the exit method that is System.exit(), then the whole system would exit, and no control will be transferred to the next block of code.
  • If finally only throws an exception, then the program would not exit gracefully but exit abruptly.

Example:

import java.io.*;
public class ReadingFromFile
{
public static void main(String[] args)throws Exception
{
FileReader fr = null;
try {
fr = new FileReader("/Users/cdp/Documents/testing/python virtual/java/myfile.txt");
System.out.println("Opening the file");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null)
System.out.println(line);
System.exit(0);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fr != null) {
try {
System.out.println("Closing the file ");
fr.close();
} catch (IOException e) {
System.out.println("unrecoverable Error occurred");
e.printStackTrace();
}
}
System.out.println("Exiting Finally block");
}
}
}

Output:

Endlich in Java

In the above example, we have used System.exit in the try block after reading the file, and it gets executed. If the System.exit gets executed without any exception, then there won’t be any control transfer to the finally block. However, in the case of an exception occuring before the System.exit, then finally block would surely get executed.

Conclusion

In the conclusion we can reach, it can finally play a very important role in gracefully exiting the program in case of errors. Finally, the block is important when you open a connection or buffered something, and it’s always important to close the connection or file opened. Finally, the block would even execute if there is an error or no error in the try block code. Finally, blocks are not mandatory but are useful in some situations.

Das obige ist der detaillierte Inhalt vonEndlich in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Ereignisbehandlung in JavaNächster Artikel:Ereignisbehandlung in Java