JAVA: Tipe Exception dengan Contoh
Java mendefinisikan beberapa jenis exception yang berhubungan dengan berbagai class libraries. Java juga memungkinkan pengguna untuk menentukan exception mereka sendiri.
Built-in Exception
Built-in exception adalah exception yang tersedia di Java libraries. Exception ini cocok untuk menjelaskan situasi error tertentu. Di bawah ini adalah daftar built-in exception yang penting di Java.
- ArithmeticException - Itu dilemparkan ketika kondisi luar biasa telah terjadi dalam operasi aritmatika.
- ArrayIndexOutOfBoundsException - Itu dilemparkan untuk menunjukkan bahwa array telah diakses dengan indeks ilegal. Indeksnya negatif atau lebih besar dari atau sama dengan ukuran array.
- ClassNotFoundException - Exception ini dimunculkan ketika kita mencoba mengakses class yang definisinya tidak ditemukan
- FileNotFoundException - Exception ini muncul saat file tidak dapat diakses atau tidak terbuka.
- IOException - Thrown ketika operasi input-output gagal atau terputus
- InterruptedException - Thrown ketika sebuah utas sedang menunggu, tidur, atau melakukan beberapa pemrosesan, dan terputus.
- NoSuchFieldException - Thrown ketika kelas tidak berisi bidang (atau variabel) yang ditentukan
- NoSuchMethodException - Thrown saat mengakses method yang tidak ditemukan.
- NullPointerException - Exception ini muncul saat merujuk ke anggota object null. Null tidak mewakili apa-apa
- NumberFormatException - Exception ini muncul ketika method tidak dapat mengubah string menjadi format numerik.
- RuntimeException - Ini mewakili Exception apa pun yang terjadi selama runtime.
- StringIndexOutOfBoundsException - Thrown oleh method Class String untuk menunjukkan bahwa indeks negatif atau lebih besar dari ukuran string
Contoh dari Built-in Exception:
Arithmetic exception
// Java program to demonstrate ArithmeticException class ArithmeticException_Demo { public static void main(String args[]) { try { int a = 30, b = 0; int c = a/b; // cannot divide by zero System.out.println ("Result = " + c); } catch(ArithmeticException e) { System.out.println ("Can't divide a number by 0"); } } }
Output:
Can't divide a number by 0
NullPointer Exception
//Java program to demonstrate NullPointerException class NullPointer_Demo { public static void main(String args[]) { try { String a = null; //null value System.out.println(a.charAt(0)); } catch(NullPointerException e) { System.out.println("NullPointerException.."); } } }
Output:
NullPointerException..
StringIndexOutOfBound Exception
// Java program to demonstrate StringIndexOutOfBoundsException class StringIndexOutOfBound_Demo { public static void main(String args[]) { try { String a = "This is like chipping "; // length is 22 char c = a.charAt(24); // accessing 25th element System.out.println(c); } catch(StringIndexOutOfBoundsException e) { System.out.println("StringIndexOutOfBoundsException"); } } }
Output:
StringIndexOutOfBoundsException
FileNotFound Exception
//Java program to demonstrate FileNotFoundException import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; class File_notFound_Demo { public static void main(String args[]) { try { // Following file does not exist File file = new File("E://file.txt"); FileReader fr = new FileReader(file); } catch (FileNotFoundException e) { System.out.println("File does not exist"); } } }
Output:
File does not exist
NumberFormat Exception
// Java program to demonstrate NumberFormatException class NumberFormat_Demo { public static void main(String args[]) { try { // "akki" is not a number int num = Integer.parseInt ("akki") ; System.out.println(num); } catch(NumberFormatException e) { System.out.println("Number format exception"); } } }
Output:
Number format exception
ArrayIndexOutOfBounds Exception
// Java program to demonstrate ArrayIndexOutOfBoundException class ArrayIndexOutOfBound_Demo { public static void main(String args[]) { try{ int a[] = new int[5]; a[6] = 9; // accessing 7th element in an array of // size 5 } catch(ArrayIndexOutOfBoundsException e){ System.out.println ("Array Index is Out Of Bounds"); } } }
Output:
Array Index is Out Of Bounds
User-Defined Exceptions
Terkadang, built-in exception di Java tidak dapat menggambarkan situasi tertentu. Dalam kasus seperti itu, pengguna juga dapat membuat exception yang disebut 'user-defined Exception'.
Langkah-langkah berikut diikuti untuk pembuatan user-defined Exception.
- Pengguna harus membuat exception class sebagai subclass dari Exception class. Karena semua exception adalah subkelas dari Exception class, pengguna juga harus menjadikan class-nya sebagai subclass Exception class. Ini dilakukan sebagai:
class MyException extends Exception
- Kita dapat menulis konstruktor default di exception class sendiri.
MyException(){}
- Kita juga dapat membuat konstruktor berparameter dengan string sebagai parameter.
Kita dapat menggunakan ini untuk menyimpan detail exception. Kita dapat memanggil konstruktor super class(Exception) dari ini dan mengirim string ke sana.
MyException(String str) { super(str); }
- Untuk memunculkan exception user-defined type, kita perlu membuat object ke exception class dan membuangnya menggunakan throw clause, seperti:
MyException me = new MyException(“Exception details”); throw me;
Program berikut mengilustrasikan cara membuat exception class MyException sendiri.
- Rincian nomor rekening, nama pelanggan, dan jumlah saldo diambil dalam bentuk tiga array.
- Dalam metode main(), detail ditampilkan menggunakan for-loop. Pada saat ini, pemeriksaan dilakukan jika di akun mana pun jumlah saldo kurang dari jumlah saldo minimum agar sesuai dengan akun.
- Jika sudah, maka MyException dimunculkan dan muncul pesan “Balance amount is less”.
// Java program to demonstrate user defined exception // This program throws an exception whenever balance // amount is below Rs 1000 class MyException extends Exception { //store account information private static int accno[] = {1001, 1002, 1003, 1004}; private static String name[] = {"Nish", "Shubh", "Sush", "Abhi", "Akash"}; private static double bal[] = {10000.00, 12000.00, 5600.0, 999.00, 1100.55}; // default constructor MyException() { } // parameterized constructor MyException(String str) { super(str); } // write main() public static void main(String[] args) { try { // display the heading for the table System.out.println("ACCNO" + "\t" + "CUSTOMER" + "\t" + "BALANCE"); // display the actual account information for (int i = 0; i < 5 ; i++) { System.out.println(accno[i] + "\t" + name[i] + "\t" + bal[i]); // display own exception if balance < 1000 if (bal[i] < 1000) { MyException me = new MyException("Balance is less than 1000"); throw me; } } } //end of try catch (MyException e) { e.printStackTrace(); } } }
RunTime Error
MyException: Balance is less than 1000 at MyException.main(fileProperty.java:36)
Output: ACCNO CUSTOMER BALANCE 1001 Nish 10000.0 1002 Shubh 12000.0 1003 Sush 5600.0 1004 Abhi 999.0