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