java
Dalam tutorial ini, kita akan belajar tentang berbagai pendekatan penanganan eksepsi di Java dengan bantuan contoh.
Dalam tutorial terakhir, kita belajar tentang pengecualian Java. Kita tahu bahwa pengecualian secara tidak normal menghentikan eksekusi suatu program.
Inilah mengapa penting untuk menangani pengecualian. Berikut daftar pendekatan berbeda untuk menangani pengecualian di Java.
Blok try-catch digunakan untuk menangani exception di Java. Berikut sintaks try...catch
blok:
try {
// code
}
catch(Exception e) {
// code
}
Di sini, kami telah menempatkan kode yang mungkin menghasilkan pengecualian di dalam try
memblokir. Setiap try
blok diikuti oleh catch
blokir.
Ketika pengecualian terjadi, itu ditangkap oleh catch
memblokir. catch
blok tidak dapat digunakan tanpa try
blokir.
class Main {
public static void main(String[] args) {
try {
// code that generate exception
int divideByZero = 5 / 0;
System.out.println("Rest of code in try block");
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
}
}
Keluaran
ArithmeticException => / by zero
Dalam contoh, kami mencoba membagi angka dengan 0
. Di sini, kode ini menghasilkan pengecualian.
Untuk menangani pengecualian, kami telah menempatkan kode, 5 / 0
di dalam try
memblokir. Sekarang ketika pengecualian terjadi, sisa kode di dalam try
blok dilewati.
catch
block menangkap eksepsi dan pernyataan di dalam blok catch dieksekusi.
Jika tidak ada pernyataan dalam try
blok menghasilkan pengecualian, catch
blok dilewati.
Di Jawa, finally
blok selalu dieksekusi tidak peduli apakah ada pengecualian atau tidak.
finally
blok adalah opsional. Dan, untuk setiap try
blok, hanya boleh ada satu finally
blokir.
Sintaks dasar finally
blok adalah:
try {
//code
}
catch (ExceptionType1 e1) {
// catch block
}
finally {
// finally block always executes
}
Jika terjadi pengecualian, finally
blok dieksekusi setelah try...catch
memblokir. Jika tidak, itu dijalankan setelah blok try. Untuk setiap try
blok, hanya boleh ada satu finally
blokir.
class Main {
public static void main(String[] args) {
try {
// code that generates exception
int divideByZero = 5 / 0;
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
finally {
System.out.println("This is the finally block");
}
}
}
Keluaran
ArithmeticException => / by zero This is the finally block
Dalam contoh di atas, kita membagi angka dengan 0 di dalam try
memblokir. Di sini, kode ini menghasilkan ArithmeticException
.
Pengecualian ditangkap oleh catch
memblokir. Dan, kemudian finally
blok dieksekusi.
Catatan :Ini adalah praktik yang baik untuk menggunakan finally
memblokir. Itu karena dapat menyertakan kode pembersihan penting seperti,
Java throw
kata kunci digunakan untuk secara eksplisit mengeluarkan satu pengecualian.
Saat kita throw
pengecualian, alur program berpindah dari try
blokir ke catch
blokir.
class Main {
public static void divideByZero() {
// throw an exception
throw new ArithmeticException("Trying to divide by 0");
}
public static void main(String[] args) {
divideByZero();
}
}
Keluaran
Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0 at Main.divideByZero(Main.java:5) at Main.main(Main.java:9)
Dalam contoh di atas, kita secara eksplisit melempar ArithmeticException
menggunakan throw
kata kunci.
Demikian pula, throws
kata kunci digunakan untuk mendeklarasikan jenis pengecualian yang mungkin terjadi dalam metode. Ini digunakan dalam deklarasi metode.
import java.io.*;
class Main {
// declareing the type of exception
public static void findFile() throws IOException {
// code that may generate IOException
File newFile = new File("test.txt");
FileInputStream stream = new FileInputStream(newFile);
}
public static void main(String[] args) {
try {
findFile();
}
catch (IOException e) {
System.out.println(e);
}
}
}
Keluaran
java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
Saat kita menjalankan program ini, jika file test.txt tidak ada, FileInputStream
melempar FileNotFoundException
yang memperluas IOException
kelas.
findFile()
metode menetapkan bahwa IOException
bisa dilempar. main()
metode memanggil metode ini dan menangani pengecualian jika dilempar.
Jika suatu metode tidak menangani pengecualian, jenis pengecualian yang mungkin terjadi di dalamnya harus ditentukan dalam throws
klausa.
Untuk mempelajari lebih lanjut, kunjungi lemparan dan lemparan Java.
java
Apa itu Pengecualian Buatan Pengguna di Java? Pengecualian Buatan Pengguna atau pengecualian khusus membuat kelas pengecualian Anda sendiri dan melempar pengecualian itu menggunakan kata kunci lempar. Ini dapat dilakukan dengan memperluas Pengecualian kelas. Tidak perlu mengganti salah satu me
Java melempar kata kunci Kata kunci lemparan Java digunakan untuk mendeklarasikan informasi pengecualian yang mungkin terjadi selama eksekusi program. Ini memberikan informasi tentang pengecualian untuk programmer. Sebaiknya berikan kode penanganan pengecualian sehingga aliran normal eksekusi progr
Pengecualian (atau kejadian luar biasa) adalah masalah yang muncul selama eksekusi suatu program. Saat Pengecualian terjadi aliran normal program terganggu dan program/Aplikasi berakhir secara tidak normal, yang tidak disarankan, oleh karena itu, pengecualian ini harus ditangani. Pengecualian dapat
Pengecualian adalah masalah yang muncul selama eksekusi program. Pengecualian C++ adalah respons terhadap keadaan luar biasa yang muncul saat program sedang berjalan, seperti upaya untuk membagi dengan nol. Pengecualian menyediakan cara untuk mentransfer kontrol dari satu bagian program ke bagian l