CS2223
Exception
Pemrograman Berorientasi
Exception adalah suatu kondisi abnormal yang
Objek terjadi pada saat pengeksekusian suatu
perintah
Karena Java everything is object, maka
exception juga direpresentasikan oleh sebuah
object.
Exception Handling Pada saat terjadi exception, ada 2 pilihan yang
dapat dilakukan :
Menangani sendiri exception tersebut
Meneruskannya ke luar dengan cara membuat
object yang menjelaskan exception tersebut dan
melemparkannya (throw) ke luar agar ditangani
oleh kode yang memanggil method tsb.
Exception Exception
Ada lima keywords yang digunakan oleh Secara umum bentuk penggunaannya
Java untuk menangani exception ini, adalah :
yaitu : 1. try {
2. /*kode yang mungkin mengakibatkan exception*/
try 3. }
4. catch (TipeException1 objectException){
catch 5. /*kode untuk menangani exception yang cocok dengan
6. TipeException1 */
finally 7. }
throw 8.
9.
catch (TipeException2 objectException){
/*kode untuk menangani exception yang cocok dengan
throws 10.
11. }
TipeException2 */
3 4
1
02/05/2011
5 6
2
02/05/2011
9 10
11 12
3
02/05/2011
13 14
15 16
4
02/05/2011
Penggunaan lebih dari satu catch Penggunaan lebih dari satu catch
(cont.) (cont.)
Pada program di atas, jika nilai x=0 maka Dengan demikian terlihat bahwa blok
outputnya : catch yang mana yang dieksekusi
Terjadi pembagian nol
oleh Java tergantung pada exception
Program Selesai
yang terjadi.
Jika nilai x=1, maka outputnya :
Tidak terjadi Exception Dalam menggunakan lebih dari satu
Program Selesai blok catch, perlu diperhatikan bahwa
Jika nilai x=2, maka outputnya : blok catch dengan tipe data subclass
Index di luar kapasitas array harus ditulis terlebih dahulu baru
Program Selesai diikuti dengan blok catch dengan tipe
17 data superclass. 18
Penggunaan lebih dari satu catch Penggunaan lebih dari satu catch
(cont.) (cont.)
Contoh (yang benar): Contoh (yang salah):
1. public class DemoTryCatch 1. public class DemoTryCatch
2. { 2. {
3. public static void main(String[] args) 3. public static void main(String[] args)
4. { 4. {
5. try { 5. try {
6. int x = 2; 6. int x = 2;
7. int y = 100/x; 7. int y = 100/x;
8. int[] arr = {10,11}; 8. int[] arr = {10,11};
9. y = arr[x]; 9. y = arr[x];
10. System.out.println("Tidak terjadi Exception"); 10. System.out.println("Tidak terjadi Exception");
11. } 11. }
12. catch (ArithmeticException e) { 12. catch (Exception e) {
13. System.out.println("Terjadi pembagian nol"); 13. System.out.println("Exception yang tidak diketahui");
14. } 14. }
15. catch (ArrayIndexOutOfBoundsException e) { 15. catch (ArithmeticException e) {
16. System.out.println("Index di luar kapasitas array"); 16. System.out.println("Terjadi pembagian nol");
17. } 17. }
18. catch (Exception e) { 18. catch (ArrayIndexOutOfBoundsException e) {
19. System.out.println("Exception yang tidak diketahui"); 19. System.out.println("Index di luar kapasitas array");
20. } 20. }
21. System.out.println("Program Selesai"); 21. System.out.println("Program Selesai");
22. } 22. }
23.} 23.}
19 20
5
02/05/2011
21 22
6
02/05/2011
27 28
7
02/05/2011
29 30
8
02/05/2011
33 34
Any Question ??