1. Describe the Java Throwable class, its subclasses, and the types of exceptions
Di dalam Java terdapat berbagai kelas yang berhubungan dengan ekspresi. Ekspresi tersebut memiliki tipe-tipe, dimana untuk superclass tertinggi (kelas tertinggi) adalah Throwable class. Berdasarkan kelas itu, terdapat subclasses, yaitu Error dan Exception.
- Subkelas Error
Subkelas Error digunakan untuk menangani kesalahan seperti memori habis (OutOfMemoryError) dan stack habis (StackOverflowError). Kelas seperti ini biasanya tidak perlu ditangani atau program segera berakhir apabila menemukan ekspresi seperti ini.
- Subkelas Exception
Subkelas Exception memiliki subkelas RuntimeException, yang digunakan untuk menangani kesalahan seperti sebkrip array tidak valid (IndexOutOfBoundsException) dan kesalahan aritmatika (ArithmeticException). Kesalah yang tergolong dalam Exception perlu ditangani, misalnya kalau ada bagian bilangan dengan bilangan nol, program dapat diatur agar tidak diakhiri.
2. What is the purpose of declaring exceptions? How do you declare an exception, and where? Can you declare multiple exceptions in a method header?
Bila terdapat checked exception, maka checked exception tersebut di declare. Pengertian di declare adalah meletakkan daftar exception yang mungkin dilemparkan dari suatu method (dengan keyword throws).
Di method header bisa dilakukan declare multiple exceptions, karena exception harus dinyatakan di method header, menggunakan klausa throws.
3. What is a checked exception and an unchecked exception?
Checked Exception adalah eksepsi yang diantisipasi oleh programmer untuk dihandle dalam program dan terjadi dikarenakan oleh kondisi luar yang siap muncul saat program berjalan. Misalnya membuka file yang tidak ada atau gangguan jaringan. Yang termasuk checked exception adalah class java.lang.Throwable dan semua subclassnya, kecuali class dan subclass dari java.lang.Error dan java.lang.RuntimeError
Unchecked Exception bisa muncul dari kondisi yang merepresentasikan adanya bug atau situasi yang secara umum dianggap terlalu sulit bagi program untuk menghandlenya. Disebut sebagai unchecked karena kita tidak perlu mengeceknya atau melakukan sesuatu jika kondisi ini terjadi. Eksepsi yang muncul dari kategori situasi yang merepresentasikan bug ini disebut sebagai runtime exception. Misalnya mengakses array melebihi size yang dimilikinya. Yang termasuk Unchecked exception:
- java.lang.Error dan subclassnya
- java.lang.RuntimeException dan subclassnya.
4. What is the keyword throw and throws used for?
Keyword throw dapat dipergunakan untuk melempar object bertipe class atau subclass dari java.lang.Throwable atau digunakan untuk melempar suatu eksepsi dalam program
Keyword throws digunakan pada waktu mendeklarasikan suatu method untuk memberitahu bahwa method yang bersangkutan dapat melempar eksepsi dengan tipe yang dideklarasikan oleh keyword throws tersebut.Penggunaan keyword throws ini juga hanya diperlukan jika eksepsi yang hendak dilempar merupakan eksepsi yang dicek (bukan merupakan turunan dari class RuntimeException dan umumnya merupakan turunan dari class Exception).
5. Point out the problem in the following code. Does the code throw any exceptions?
Tidak terjadi kesalahan dalam code di atas. Tetapi, code tersebut tidak akan di jalankan (eksekusi) di exception.
6. Suppose that statement2 causes an exception in the following try-catch block:
Answer the following questions:
- Will statement3 be executed? Tidak akan dieksekusi
- If the exception is not caught, will statement4 be executed? Tidak akan dieksekusi
- If the exception is caught in the catch block, will statement4 be executed? Akan dieksekusi
- If the exception is passed to the caller, will statement4 be executed? Tidak akan dieksekusi
7. What is displayed when the following program is run?
Apabila program di atas di compile maka akan terjadi error pada static void method()throws Exception(). Tapi, apabila static void method()throws Exception() di ubah menjadi static void method()throws Exception maka hasil outputnya adalah ArithmeticException.
( Novianti – 1701298144 )
http://www.binus.ac.id