Mengenal Tipe-Tipe Exception Pada Java

Seperti sudah anda ketahui sbelumnya bahwa exception merupakan sebuah objek. Dan pada Java objek didefinisikan dari suatu class.

Kaprikornus class apakah yang menghasilkan objek exception? Root class untuk exception adalah java.lang.Throwable.

Pada pembahasan sebelumnya anda sudah mengetahui mengenai ArithmeticException dan InputMismatchException. Apakah masih ada lagi tipe exception lainnya? Atau apakah anda sanggup memutuskan sendiri class-class exception tersebut? Jawabannya yakni masih banyak lagi tipe lainnya dan anda sanggup memutuskan sendiri class exception anda.

Seperti sudah anda ketahui sbelumnya bahwa  Mengenal Tipe-tipe Exception Pada Java


Pada Java API terdapat aneka macam class-class exception yang sudah didefinisikan sebelumnya. Gambar di bawah ini menujukkan hirarki untuk ArithmeticException dan InputMismatchException.

Seperti sudah anda ketahui sbelumnya bahwa  Mengenal Tipe-tipe Exception Pada Java


Nama-nama class menyerupai Error, Exception, dan RuntimeException agak membingungkan. Ketiga class tersebut yakni exceptions dan semua error terjadi pada dikala runtime.

Semua exceptions dalam Java inherit secara pribadi ataupun tidak pribadi dari class Throwable. Anda sanggup menciptakan sendiri class-class exceptions dengan menciptakan subclass dari class Exception.

Klasifikasi Class-class Exceptions

Class-class exceptions itu sendiri sanggup diklasifikasikan menjadi 3 tipe, yaitu:
  • System error
  • Exceptions
  • Runtime exceptions
System error dilontarkan oleh JVM dan direpresentasikan pada class Error. Error class ini akan menjelaskan mengenai sistem error internal, meskipun hal ini jarang terjadi. Namun jikalau error ini terjadi maka tidak banyak yang sanggup dilakukan selain memberitahu user dan menghentikan agenda dengan baik.

Beberapa subclass dari class Error adalah:
  • AnnotationFormatError
  • AssertionError
  • AWTError
  • CoderMalfunctionError
  • FactoryConfigurationError
  • FactoryConfigurationError
  • IOError, LinkageError
  • ServiceConfigurationError
  • ThreadDeath
  • TransformerFactoryConfigurationError
  • VirtualMachineError
Exceptions direpresentasikan dalam class Exception yang menggambarkan kesalahan yang disebabkan lantaran agenda anda sendiri dan oleh alasannya yakni eksternal. Namun, error ini sanggup ditangkap dan ditangani oleh agenda anda.

Beberapa subclass dari class Exception diantaranya adalah:
  • IOException,
  • RuntimeException, 
  • TimeoutException
  • UnsupportedLookAndFeelException
  • XMLParseException
dan masih sangat banyak lagi yang lainnya.

Runtime exceptions direpresentasikan pada class RuntimeException yang menjelaskan mengenai kesalahan pada pemrograman menyerupai kesalahan casting, mengakses array out-of-bounds, dan juga error numerik. Runtime exceptions ini pada umumnya dilontarkan oleh JVM.

Beberapa subclass dari class RuntimeException  diantaranya adalah:
  • ClassCastException
  • EmptyStackException
  • EventException
  • IllegalArgumentException, 
  • IndexOutOfBoundsException
  • NullPointerException
dan lain sebagainya.

Unchecked dan Checked Exceptions

RuntimeException, Error, dan para subclassnya yakni termasuk unchecked exceptions. Sementara itu, exceptions lainnya disebut dengan checked exceptions yang artinya compiler akan memaksa programmer untuk menyidik dan mengatasinya dengan blok try-catch atau mendeklarasikannya pada header method.



Di dalam kebanyakan kasus, unchecked exceptions mencerminkan logic error pada pemrograman yang tidak terpulihkan.

Misalnya NullPointerException akan muncul ketika anda mengakses objek melalui variabel referensi sebelum objek tersebut ditetapkan pada referensi tersebut. Atau tumpuan lainnya yakni IndexOutOfBoundsException yang muncul ketika anda mencoba untuk mengakses elemen array di luar dari indexnya.

Logic error ini harus dikoreksi di dalam program. Unchecked exceptions sanggup terjadi di mana saja di dalam program. Oleh lantaran itu, untuk menghindari penggunaan blok try-catch yang tidak praktis, maka Java tidak memandatkan menulis arahan untuk menangkap atau mendeklarasikan unchecked exceptions tersebut.

Checked exceptions dipakai dalam situasi di mana kegagalan harus diantisipasi. Salah satu alasan umum kegagalan yakni input dan output. File mungkin saja rusak dan koneksi jaringan mungkin gagal.

Sejumlah class-class exception inherit dari IOException, dan Anda harus memakai yang sesuai untuk melaporkan error-error yang Anda hadapi. Misalnya, ketika file yang seharusnya ada ternyata tidak ada, maka FileNotFoundException akan terlontar.

Terkadang perlu untuk memakai keputusan ketika membedakan antara checked dan unchecked exception. Misalkan ketika memanggil method Integer.parseInt (str) yang akan melontarkan unchecked  NumberFormatException dikala str tidak mengandung integer yang valid. Di sisi lain, method Class.forName (str) akan melontarkan checked ClassNotFoundException bila str tidak mengandung nama kelas yang valid.

Apa bedanya dari kedua hal di atas?

Alasannya yakni menjadi sesuatu yang mungkin untuk menyidik apakah sebuah string yakni integer sebelum memanggil Integer.parseInt, namun mustahil untuk mengetahui apakah sebuah class sanggup di load hingga Anda benar-benar mencoba untuk me-load-nya.

Java API menyediakan banyak kelas exception, menyerupai IOException, IllegalArgumentException, dan sebagainya. Anda harus memakai ini jikalau sesuai dengan keperluan.

Namun, jikalau tidak ada kelas exception standar yang sesuai untuk tujuan Anda, maka Anda sanggup membuatnya sendiri dengan mewarisi atau extend dari class Exception, RuntimeException, atau class exception lainnya. Bila Anda melaksanakan hal tersebut, merupakan wangsit yang baik jikalau Anda memperlihatkan konstruktor tanpa argumen dan konstruktor dengan string pesan.

Seperti tumpuan di bawah ini:


Belum ada Komentar untuk "Mengenal Tipe-Tipe Exception Pada Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel