Exception handling adalah proses menanggapi kejadian, terhadap kondisi anomali atau luar biasa yang membutuhkan pemrosesan khusus sehingga sering mengubah aliran normal pelaksanaan program.

Java memiliki mekanisme bawaan untuk menangani Exception. Menggunakan statement try, kita dapat menguji blok kode untuk kesalahan. Blok catch berisi kode apa yang harus dilakukan jika Exception terjadi.

Challenge berikut akan menguji pengetahuan Anda terhadap try-catch.

Anda akan diberikan dua bilangan bulat (integer) x dan y sebagai input, Anda harus menghitung nilai x/y. Jika x dan y bukan bilangan bulat integer atau jika y sama dengan nol, Exception akan terjadi dan Anda harus mencetak jenis error nya.

Contoh input 1:

Masukkan x: 10

Masukkan y: 3

Contoh output 1:

Hasilnya: 3

======================================

Contoh input 2:

Masukkan x: 10

Masukkan y: Hello

Contoh output 2:

Hasilnya: java.util.InputMismatchException

======================================

Contoh input 3:

Masukkan x: 10

Masukkan y: 0

Contoh output 3:

Hasilnya: java.lang.ArithmeticException: / by zero

======================================

Contoh input 4:

Masukkan x: 24.434

Masukkan y: 0

Contoh output 4:

Hasilnya: java.util.InputMismatchException

======================================

 

Answer:

public static void main(String[] args) {
    try {
        Scanner input = new Scanner(System.in);
        int x = input.nextInt();
        int y = input.nextInt();
        System.out.println(x / y);
    } catch (Exception e) {
        System.out.println(e.getClass().getName() + (e.getMessage() != null
                && e instanceof ArithmeticException ? (": " + e.getMessage()) : ""));
    }
}

 

OR

 

public static void main(String[] args) {
    try {
        Scanner input = new Scanner(System.in);
        int x = input.nextInt();
        int y = input.nextInt();
        System.out.println(x / y);
    } catch (InputMismatchException e) {
        System.out.println(e.getClass().getName());
    } catch (Exception e) {
        System.out.println(e);
    }
}

Source code ini sudah memenuhi semua kriteria test cases yang saya attached di bawah ini:

java-try-catch-testcases