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

Lemparan Jawa

Melempar dan melempar Java

Dalam tutorial ini, kita akan belajar menggunakan kata kunci throw and throws untuk penanganan eksepsi dengan bantuan contoh.

Di Java, exception dapat dikategorikan menjadi dua jenis:

Lihat Pengecualian Java untuk mempelajari secara detail tentang pengecualian yang dicentang dan yang tidak dicentang.

Biasanya, kita tidak perlu menangani pengecualian yang tidak dicentang. Itu karena pengecualian yang tidak dicentang terjadi karena kesalahan pemrograman. Dan, merupakan praktik yang baik untuk memperbaikinya alih-alih menanganinya.

Tutorial ini sekarang akan fokus pada cara menangani pengecualian yang diperiksa menggunakan throw dan throws .


Java melempar kata kunci

Kami menggunakan throws kata kunci dalam deklarasi metode untuk mendeklarasikan jenis pengecualian yang mungkin terjadi di dalamnya.

Sintaksnya adalah:

accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

Seperti yang Anda lihat dari sintaks di atas, kita dapat menggunakan throws untuk mendeklarasikan beberapa pengecualian.


Contoh 1:Java melempar Kata Kunci

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    // code that may produce 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 (No such file or directory)

Saat kita menjalankan program ini, jika file test.txt tidak ada, FileInputStream melempar FileNotFoundException yang memperluas IOException kelas.

Jika suatu metode tidak menangani pengecualian, jenis pengecualian yang mungkin terjadi di dalamnya harus ditentukan dalam throws klausa sehingga metode lebih jauh di tumpukan panggilan dapat menanganinya atau menentukannya menggunakan throws kata kunci itu sendiri.

findFile() metode menetapkan bahwa IOException bisa dilempar. main() metode memanggil metode ini dan menangani pengecualian jika dilempar.


Melempar beberapa pengecualian

Inilah cara kita dapat membuang beberapa pengecualian menggunakan throws kata kunci.

import java.io.*;
class Main {
  public static void findFile() throws NullPointerException, IOException, InvalidClassException {
    
    // code that may produce NullPointerException
    … … … 

    // code that may produce IOException
    … … … 

    // code that may produce InvalidClassException 
    … … … 
  }

  public static void main(String[] args) {
    try{
      findFile();
    } catch(IOException e1){
      System.out.println(e1.getMessage());
    } catch(InvalidClassException e2){
      System.out.println(e2.getMessage());
    }
  }
}

Di sini, findFile() metode menentukan bahwa ia dapat membuang NullPointerException , IOException , dan InvalidClassException dalam throws klausa.

Perhatikan bahwa kami belum menangani NullPointerException . Ini karena ini adalah pengecualian yang tidak dicentang. Tidak perlu menentukannya di throws klausa dan tangani.


melempar kata kunci Vs. coba...tangkap...akhirnya

Mungkin ada beberapa metode yang dapat menyebabkan pengecualian. Menulis try...catch untuk setiap metode akan membosankan dan kode menjadi panjang dan kurang terbaca.

throws juga berguna ketika Anda telah memeriksa pengecualian (pengecualian yang harus ditangani) yang tidak ingin Anda tangkap dalam metode Anda saat ini.


Kata kunci Java throw

throw kata kunci digunakan untuk secara eksplisit mengeluarkan satu pengecualian.

Saat pengecualian dilemparkan, aliran eksekusi program ditransfer dari try blokir ke catch memblokir. Kami menggunakan throw kata kunci dalam suatu metode.

Sintaksnya adalah:

throw throwableObject;

Objek yang dapat dilempar adalah turunan dari kelas Throwable atau subkelas dari Throwable kelas.


Contoh 2:Kata kunci lemparan Java

class Main {
  public static void divideByZero() {
    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:3)
    at Main.main(Main.java:7)
exit status 1

Dalam contoh ini, kami secara eksplisit melempar ArithmeticException.

Catatan: ArithmeticException adalah pengecualian yang tidak dicentang. Biasanya tidak perlu menangani pengecualian yang tidak dicentang.


Contoh 3:Melempar pengecualian yang dicentang

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    throw new IOException("File not found");
  }

  public static void main(String[] args) {
    try {
      findFile();
      System.out.println("Rest of code in try block");
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
  }
}

Keluaran

File not found

findFile() metode melempar IOException dengan pesan yang kami sampaikan ke konstruktornya.

Perhatikan bahwa karena ini adalah pengecualian yang dicentang, kita harus menentukannya di throws klausa.

Metode yang memanggil findFile() ini metode perlu menangani pengecualian ini atau menentukannya menggunakan throws kata kunci itu sendiri.

Kami telah menangani pengecualian ini di main () metode. Alur eksekusi program ditransfer dari try blokir ke catch blok ketika pengecualian dilemparkan. Jadi, sisa kode di try blok dilewati dan pernyataan dalam catch blok dieksekusi.


java

  1. Variabel dan Literal Java
  2. Input dan Output Dasar Java
  3. Ekspresi, Pernyataan, dan Blok Java
  4. Kelas dan Objek Java
  5. Kelas Abstrak Java dan Metode Abstrak
  6. Java Nested dan Kelas Dalam
  7. Java menangkap Beberapa Pengecualian
  8. Autoboxing dan unboxing Java
  9. Java String replace(), replaceAll() dan replaceFirst() metode
  10. Metode String Java toLowercase() dan toUpperCase()