Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Penanganan Pengecualian Java

Penanganan Pengecualian 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.


1. Java try...catch block

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.

Contoh:Penanganan eksepsi menggunakan try...catch

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.


2. Java akhirnya memblokir

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.


Contoh:Penanganan Pengecualian Java menggunakan blok akhirnya

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,


3. Java melempar dan melempar kata kunci

Java throw kata kunci digunakan untuk secara eksplisit mengeluarkan satu pengecualian.

Saat kita throw pengecualian, alur program berpindah dari try blokir ke catch blokir.

Contoh:Penanganan eksepsi menggunakan Java throw

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.

Contoh:Java melempar kata kunci

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

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Jawa coba ... tangkap
  8. Java mencoba-dengan-sumber daya
  9. Anotasi Jawa
  10. Pernyataan Jawa