Artikel berikut menyediakan garis besar tentang Akhirnya di Jawa. Akhir sekali, ialah blok kod yang digunakan bersama dengan try and catch. Akhirnya mengandungi blok kod yang mesti dilaksanakan sama ada pengecualian berlaku atau tidak. Pernyataan yang ditulis di dalam blok akhirnya sentiasa dilaksanakan tanpa mengira sama ada ralat berlaku dalam blok cuba atau tidak. Akhir sekali, blok itu bagus untuk menutup fail atau sambungan pangkalan data yang memastikan anda tidak mendapat sebarang ralat memori disebabkan oleh fail terbuka atau ralat pangkalan data akibat sambungan terbuka atau ralat sambungan maksimum. Ia juga memastikan bahawa sebarang ralat yang berlaku dalam kod akan dikendalikan dengan baik.
IKLAN Kursus Popular dalam kategori ini PEMODELAN & PENILAIAN KEWANGAN - Pengkhususan | 51 Siri Kursus | 30 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks:
try { //block of code that may cause an exception }
catch { //Handling the error occurred in try block }
finally { //code that should always execute }
Di sini kami akan membuang ralat atau menulis kod ralat yang akan mengakibatkan ralat dan akhirnya menyekat pelaksanaan.
Kod:
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"); } }
Output:
Penjelasan:
Dalam program di atas, kami telah membahagikan nombor daripada sifar, yang telah kami .
Dan selepas cuba menangkap akhirnya, blok kami menulis blok kod di luar semua yang dicetak.
Contoh lain kita akan lihat di mana tiada pengecualian akan berlaku di dalam blok try-catch-finally dan lihat apa yang berlaku.
Kod:
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"); } } }
Output:
Penjelasan:
Dalam program di atas, kami tidak menulis sebarang kod yang boleh menyebabkan ralat. Kod tersebut berjaya dilaksanakan di dalam blok cuba, tetapi anda masih boleh melihat blok akhirnya dilaksanakan dan mencetak mesej di dalamnya.
Membuka fail untuk membaca atau menulis memerlukan membuka fail, kemudian menampan strim dan kami harus memastikan untuk menutup fail yang dibuka supaya kami tidak mendapat sebarang pengendalian fail, IO atau ralat cakera.
Kod:
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"); } } }
Output ( Fail tidak wujud):
Output (Fail Wujud):
Dalam contoh di atas, kami cuba membuka fail dan membacanya ke dalam penimbal daripada laluan fail. Jika fail itu wujud dan kami dapat membaca fail itu, maka tiada ralat akan dilemparkan, dan penimbal fail akan ditutup dalam akhirnya disekat jika ia tidak batal. Walaupun terdapat ralat dalam membaca fail, katakan kerana beberapa kebenaran, kemudian juga dalam akhirnya menyekat fail itu akan ditutup.
Sehingga kini, kami telah melihat bila dan bagaimana akhirnya sekatan akan dilaksanakan.
Tetapi mungkin terdapat senario tertentu di mana akhirnya, sekatan itu tidak akan dilaksanakan.
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.
Atas ialah kandungan terperinci Akhirnya di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!