Belajar Pemrograman Java Dari Dasar

Membuat Class Custom Exception Pada Program Java

Untuk dapat menetapkan sebuah custom exception maka anda bisa membuat class yang inherit dari class java.lang.Exception.

Java telah menyediakan banyak exception class secara built-in. Jadi menggunakan class tersebut merupakan pilihan yang lebih tepat bila dibandingkan harus membuat custom exception class sendiri.

Tapi, bila anda memiliki masalah yang tidak bisa dijelaskan dengan sempurna oleh class exception yang sudah ditetapkan sebelumnya, maka anda bisa mencoba untuk membuat class exception anda sendiri, dimana custom class ini merupakan turunan dari class Exception ataupun dari subclassnya, seperti IOException.

custom-exception-Java

Apakah Anda Perlu Membuat Class Custom Exception?


Terdapat beberapa panduan yang bisa memberikan petunjuk apakah anda perlu membuat custom class Exception sendiri atau tidak.

Untuk mengetahuinya, cobalah jawab pertanyaan berikut ini. Jika anda menjawab YA pada salah satu dari beberapa pertanyaan ini, maka anda anda dapat menulis class exception sendiri.
Sebaliknya, jika tidak ada jawaban YA, maka anda bisa menggunakan class Exception yang sudah disediakan sebelumnya oleh Java library atau yang sudah disediakan oleh pihak lain.


Pertanyaan sebagai panduan tersebut adalah:
  • Apakah anda memerlukan tipe exception yang tidak direpresentasikan oleh platform Java?

  • Apakah exception yang anda buat itu bisa menolong user untuk membedakan custom exception anda dari apa yang sudah terlempar (throw) oleh class yang ditulis oleh vendor?

  • Apakah kode program melemparkan lebih dari satu exception yang saling berkaitan?

  • Bila anda menggunakan exception milik orang lain, apakah user akan memiliki akses pada exception tersebut? Pertanyaan yang serupa juga adalah apakah package exception anda itu harus independen dan mandiri? 
Contoh class custom exception:

//Ini adalah class custom Exception
public class ExceptionPembagianDenganAngkaNol extends Exception {
 
 public ExceptionPembagianDenganAngkaNol(String pesan){
  super (pesan);
 }

}

public class PembagianDenganAngkaNol {
 
 public static void main(String[] args) {
  try{
   int hasil = pembagianInteger(8, 2);
   System.out.format("8 dibagi 2 adalah %d%n", hasil);
   
   pembagianInteger(8, 0);//Pada pernyataan ini objek ExceptionPembagianDenganAngkaNol terlempar
   System.out.format("8 dibagi 0 adalah %d%n", hasil);
  }
  catch(ExceptionPembagianDenganAngkaNol ex){
   System.out.println(ex.getMessage());
  }
 }
 
 static int pembagianInteger(int i, int j) throws ExceptionPembagianDenganAngkaNol{
  
  if (j == 0){
   throw new ExceptionPembagianDenganAngkaNol ("Integer tidak bisa dibagi dengan angka 0!");
  }
  return i / j;
 }

}

Contoh output:
8 dibagi 2 adalah 4
Integer tidak bisa dibagi dengan angka 0!

Apakah custom exception bisa ditetapkan dengan melakukan extends dari class RunTimeException? Jawabannya adalah bisa. Namun ini bukanlah praktek yang baik karena akan membuat custom exception menjadi unchecked. Akan lebih baik jika membuat custom exception itu sebagai checked exception dengan tujuan agar compiler bisa memaksa exception ini untuk ditangkap dalam program Java anda.

Share on Facebook
Share on Twitter
Share on Google+

Tempat berbagi pengetahuan untuk bahasa pemrograman Java

Related : Membuat Class Custom Exception Pada Program Java