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 ProbetestsStarten 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 }
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:
Erklärung:
Im obigen Programm haben wir eine Zahl von Null dividiert, was wir bereits getan haben.
Und nach dem Try-Catch-Block haben wir schließlich einen Codeblock geschrieben, der außerhalb von allem liegt, was gedruckt wurde.
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:
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.
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):
Ausgabe (Datei vorhanden):
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.
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.
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:
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.
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!