Rumah > Java > javaTutorial > Akhirnya di Jawa

Akhirnya di Jawa

WBOY
Lepaskan: 2024-08-30 16:15:28
asal
627 orang telah melayarinya

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-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks:

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

Bagaimana Akhirnya berfungsi di Jawa?

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");
}
}
Salin selepas log masuk

Output:

Akhirnya di Jawa

Penjelasan:

Dalam program di atas, kami telah membahagikan nombor daripada sifar, yang telah kami .

  • Mengendalikan Ralat dalam Akhirnya.

Dan selepas cuba menangkap akhirnya, blok kami menulis blok kod di luar semua yang dicetak.

  • Pelaksanaan selesai daripada blok Try Catch Finally.

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");
}
}
}
Salin selepas log masuk

Output:

Akhirnya di Jawa

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.

  • akhirnya kod blok

Akhir sekali, Sekat Penggunaan dalam Program Java

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");
}
}
}
Salin selepas log masuk

Output ( Fail tidak wujud):

Akhirnya di Jawa

Output (Fail Wujud):

Akhirnya di Jawa

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.

Kepentingan

  • Akhir sekali, blok mesti sentiasa dikaitkan dengan blok cuba; kita tidak boleh menulis guna akhirnya blok tanpa blok cuba. Pernyataan yang anda tulis di dalam akhirnya disekat akan dilaksanakan, sentiasa tidak bergantung pada cuba kod blok sama ada ralat berlaku atau tidak.
  • Akhir sekali, blok itu bukan blok wajib; kita boleh menulis blok cuba dan tangkap tanpa sekatan akhirnya. Katakan kita hanya mahu menangkap ralat untuk sebarang input pengguna yang inputnya bermasalah.
  • Dalam kes di mana masih tiada sebarang ralat berlaku, akhirnya, sekatan akan dilaksanakan. Jika terdapat sebarang ralat, maka blok tangkapan pertama dilaksanakan, kemudian akhirnya.
  • Semua pengecualian mempunyai gelagat yang sama dalam blok akhirnya. Blok akan dilaksanakan seperti biasa untuk semua pengecualian.
  • Akhir sekali, blok akan dilaksanakan walaupun terdapat penyataan break, return atau continue dalam blok try.

Bila Akhirnya Tidak Melaksanakan?

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.

  • 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");
}
}
}
Salin selepas log masuk

Output:

Akhirnya di Jawa

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.

Atas ialah kandungan terperinci Akhirnya di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan