- Exception Handling
Jawab :
- Exception handling didesain untuk menangani synchronous errors yang terjadi saat suatu statement dieksekusi.
- Exception handling TIDAK didesain untuk menangani masalah yang berkaitan dengan asynchronous events (e.g., disk I/O completions, network message arrivals, mouse clicks and keystrokes).
- Semua exception yang ada di java merupakan turunan langsung atau tidak langsung dari class
Exception. - Superclass dari
Exceptionadalah kelasThrowable. Hanya objekThrowable(dan turunannya) yang dapat digunakan dalam mekanisme Exception handling. KelasThrowablememiliki 2 kelas turunan, yaituExceptiondanError. - Kelas
Errordan turunannya menggambarkan kondisi abnormal yang terjadi pada JVM. - Kebanyakan
Errorterjadi sangat jarang dan tidak bisa ditangani oleh aplikasi, sangat tidak mungkin untuk aplikasi recovery dariError.
Throwable
/\
/ \
Exception Error
/\
/ \
RuntimeException (Checked Exception)
(Unchecked Exception)
- Semua exception yang diturunkan dari kelas
RuntimeExceptionadalah Unchecked Exception. Terjadi karena cacat yang ada pada kode kita, contoh saat terjadiArrayIndexOutOfBoundsException. - Semua exception yang diturunkan dari kelas
Exception(kecuali kelasRuntimeException) adalah Checked Exception. - Compiler akan mengecek setiap pemanggilan method untuk menentukan apakah method tersebut melempar / throws
checked exception. Jika melemparchecked exception, compiler akan memastikan bahwa exception tersebut ditangkap (dalam blok try-catch statement) atau dilemparkan dan ditangkap oleh method pemanggilnya. Jika kondisi ini tidak terpenuhi, maka compiler akan memarahimu (memberikan issue error). Hal ini memaksa kita (eeh gue doang kali ya) untuk memikirkan apa yang akan terjadi saat negara api menyerang, eeh salah, memikirkan apa yang mungkin akan terjadi saat memanggil method yang melemparkancheckek exception.