Hafidh
Personal Blog
i
26 Votes
Outline :
Pengertian
I. Pengertian
Pada dasarnya, Exception merupakan subkelas dari kelas java.lang.Throwable. “Bukalah dokumentasi
java untuk lebih menyakinkan anda”. Karena Exception adalah sebuah kelas maka hakikatnya ketika
program berjalan dan muncul sebuah bug atau kesalahan maka bug tersebut dapat dianggap sebuah
object. Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil
method toString yang terdapat dalam object bertipe Exception ini. Java memberikan akses kepada
developer untuk mengambil object bug yang terjadi ini dengan mekanisme yang dikenal Exception
Handling. Exception handling merupakan fasilitas di java yang memberikan flexibilitas kepada
developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan. Contoh
Exception Handling akan dibahas pada bagian berikutnya.
Seperti yang telah dijelaskan diatas bahwa kelas Exception merupakan kelas turunan dari kelas
Throwable di package Java.Lang. Selain Exception, java.lang.Throwable juga memiliki subclass yaitu class
Error. Tentu, kita bertanya-tanya, sebetulnya apa sih perbedaan antara class Error dengan class
Exception.
“An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not
try to catch. Most such errors are abnormal conditions” (JDK 5.0 Documentation)
Penjelasan dari class Exception :
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 1/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
“The class Exception and its subclasses are a form of Throwable that indicates conditions that a
reasonable application might want to catch. “ (JDK 5.0 Documentation)
Seperti dari penjelasan yang diberikan oleh JDK Documentation, maka dapat kita lihat bahwa error dan
exception pada dasarnya berbeda. Error merupakan masalah yang muncul tapi tidak ada alasan yang
kuat untuk menangkapnya. Sedangkan Exception merupakan kesalahan kecil yang muncul dan ingin
diperlakukan sesuai keinginan developer.
1. try
Keyword ini biasanya digunakan dalam suatu block program. keyword ini digunakan untuk mencoba
menjalankan block program kemudian mengenai dimana munculnya kesalahan yang ingin diproses.
Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally yang akan dibahas
pada point kedua dan ketiga.
Contoh penggunaan :
public class A
{
public static void main(String[] args) {
try
{
int a = 1 / 0; // berpotensi untuk menimbulkan kesalahan yaitu
// pembagian dengan bilangan 0
System.out.println("perintah selanjutnya");
}
catch (Exception kesalahan)
{
System.err.println(kesalahan);
}
}
}
Output :
java.lang.ArithmeticException: / by zero
Perhatikan contoh diatas, ada beberapa hal penting yang perlu dilihat. Pertama, block program yag
diyakini menimbulkan kesalahan maka ada di dalam block try and catch.Kedua, kesalahan yang
muncul akan dianggap sebagai object dan ditangkap catch kemudian di assign ke variable kesalahan
dengan tipe Exception. Ketiga, perintah setelah munculnya kesalahan pada block try tidak akan
dieksekusi.
2. catch
Jika anda sudah melihat contoh try maka secara tidak langsung anda sudah memahami kegunaan
dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try. Kegunaan keyword ini
adalah menangkap kesalahan atau bug yang terjadi dalam block try. Setelah menangkap kesalahan
yang terjadi maka developer dapat melakukan hal apapun pada block catch sesuai keinginan developer.
Contoh Program :
catch(Exception kesalahan)
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 2/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
catch(Exception kesalahan)
{
System.out.println(“mohon maaf, terdapat kesalahan pada program”);
//lakukan hal lainnya disini
}
Keyword catch juga dapat diletakan berulang-ulang sesuai dengan kebutuhan. Contoh :
public class A
{
public static void main(String[] args) {
try
{
int a = 1/0; //berpotensi untuk menimbulkan kesalahan yaitu pembagian deng
System.out.println("perintah selanjutnya");
}
catch(NullPointerException e)
{
}
catch(ArrayIndexOutOfBoundsException e)
{
}
catch(Exception e)
{
}
}
}
3. finally
Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu
dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada. Contoh implementasinya
pada program :
public class A
{
public static void main(String[] args) {
try
{
//int a = 1/0;
}
finally
{
System.out.println("terima kasih telah menjalankan program");
}
}
}
public class A
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 3/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
public class A
{
public static void main(String[] args) {
try
{
int a = 1/0;
}
catch (Exception e)
{
System.out.println(“ada kesalahan yang muncul”);
}
finally
{
System.out.println(“terima kasih telah menjalankan program”);
}
}
}
Output Program :
Perhatikan kedua contoh diatas, block finally akan selalu dieksekusi meskipun adanya kesalahan atau
tidak pada block try. Berbeda dengan keyword catch keyword finally hanya dapat diletakan 1 kali
setelah keyword try.
4. throw
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual. Contoh program :
public class A
{
public static void main(String[] args) {
try
{
throw new Exception("kesalahan terjadi");
}
catch(Exception e)
{
System.out.println(e);
}
}
}
Output Program :
Seperti yang anda lihat pada program diatas, pada keyword throw new Exception(“kesalahan
terjadi”); akan melempar object bertipe exception yang merupakan subclass dari class Exception
sehingga akan dianggap sebagai suatu kesalahan yang harus ditangkap oleh keyword catch.
public class A
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 4/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
public class A
{
public static void main(String[] args) {
try
{
throw new B(); //cobalah ganti baris ini dengan à new B();
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class B extends Exception
{
B()
{
}
public String toString()
{
return “object dengan tipe kelas B”;
}
}
Output Program :
Program diatas telah mendefinisikan suatu kelas B mengextends dari kelas Exception. Ketika kita
melakukan throw new B(); maka object dari kelas bertipe B ini akan dianggap kesalahan dan
ditangkap oleh block catch. Sekarang jika anda menghilangkan keyword throw apa yang terjadi?.
5. throws
Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu
kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method adalah sebagai
berikut : <method modifier> type method-name throws exception-list1, exceptio-list2, … {}.
Contoh Program :
public class A
{
public static void main(String[] args) {
try
{
f();
}
catch(Exception e)
{
System.out.println(e);
}
}
public static void f() throws NullPointerException, ArrayIndexOutOfBoundsException
{
//implementasi method
throw new NullPointerException();
//throw new ArrayIndexOutOfBoundsException();
}
}
Output Program :
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 5/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
Output Program :
java.lang.NullPointerException
public class A
{
public static void main(String[] args) {
try
{
f();
}
catch(Exception e)
{
System.out.println(e);
}
}
public static void f() throws NullPointerException, ArrayIndexOutOfBoundsException
{
//implementasi method
//throw new NullPointerException();
throw new ArrayIndexOutOfBoundsException();
}
}
Output Program :
java.lang.ArrayIndexOutOfBoundsException
Perhatikan kedua contoh pengguaan keyword throws pada method. Ketika method tersebut dipanggil
dalam block try. Maka method tersebut akan membuat object yang merupakan subclass dari class
Throwable dan method tersebut akan melemparkan kesalahan yang ada dalam block method kedalam
block try. Di dalam block try, kesalahan tersebut kemudian ditangkap kedalam block catch.
-Semoga membantu –
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 6/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
Advertisements
1. neezasty
May 16th, 2010
REPLY QUOTE
trimakasih atas ilmunya….
tapi kalo melemparnya ke kelas gmn…
tu td bukannya throw trhadap method…
trimakasih…
saya tunggu secepatnya……….
Hafidh
May 16th, 2010
REPLY QUOTE
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 7/18
9/2/2017 May 16th, 2010 Exception Handling dalam Java Programming | Hafidh
REPLY QUOTE
akhirnya, ada juga yang menanyakan hal ini.. thanks to you..
yup, untuk kelas, java tidak bisa melakukan throws suatu Exception..
2. faisal
July 9th, 2010
REPLY QUOTE
saya btuh bantuan ni….
saya dapat tugas dari kampus untuk membuat program yang menggunakan
exception,TRY,CACTH dan TRHOW sebanyak 40 baris dalam 1 halaman…
ada yang bisa memberi saya programnya tidak??
kalo ada yang bisa mohon kirim program nya ke email saya…
faisalrusli@yahoo.co.id
terima kasih sebelumnya…
3. Giri
October 9th, 2010
REPLY QUOTE
kaka, saya mau nanya,saya dikasih tugas dari kampus,, dana ada input seperti ini “public static
void main(String[] args) throws Exception” maksud dari throws exception ituh apa,, plizz bantu
secepatnya, coz deadline nya besok,, kalo ada g bisa bantu hidup dan mati saya,, bisa ngirim
infonya ke email saya ato balas disini ajah,, arsenal_fabregas@rocketmail.com
4. Hafidh
October 11th, 2010
REPLY QUOTE
wahh, maaf2,, saya baru melihat-lihat blog lagi
menjawab pertanyaan tersebut,
maksud throws Exception dalam suatu method adalah jika ada exception di dalam method
tersebut maka exceptionnya akan dilempar ke bagian dimana method tersebut dipanggil. di
dalam method yang memanggil itulah kemudian exception tersebut ditangkap atau dilempar lagi
ke method yang memanggilnya kembali sampai ada yang menangkap exceptionnya. Namun
dalam kasus yang kamu tanyakan, jika method public static void main(String[] args) men-throws
Exception maka akan sia-sia saja karena method main merupakan method yang paling atas atau
dalam artian tidak ada method yang memanggil method main, kecuali ada method static yang
memanggil method ini.
class A
{
public static void main(String[] args) throws Exception{
int a = 10/0;
}
}
5. likas
November 30th, 2010
REPLY QUOTE
makasi atas ilmunya,,bermanfaat sekali
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 8/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
6. hard
December 11th, 2010
REPLY QUOTE
sangat sangat membantu.
mkasih informasinya.
Hafidh
December 13th, 2010
REPLY QUOTE
yang dimaksud akibat apa ya? Exception itu berguna untuk menanggani kesalahan-kesalahan
yang mungkin terjadi, misalnya file not found ketika hendak membuka file.. dalam bagian catch
developer dapat mengimplementasikan apa yang harus dilakukan program kita untuk
mengatasi masalah tersebut..
7. sarwono
January 24th, 2011
REPLY QUOTE
wah makasih banget sangat membantu atas penjelasannya
8. arifin
March 18th, 2011
REPLY QUOTE
^__^ misi mas/om/pak numpang tanya, kira2 method yang di throws Exception bisa
mengembalikan nilai ndak yach, makasi atas jawabannya ^__^
9. Achor Mohammad
October 14th, 2011
REPLY QUOTE
makasih artikelnya. . . ^^
Hafidh
October 15th, 2011
REPLY QUOTE
sama2,
10. jirjis
December 19th, 2011
REPLY QUOTE
terimaksih atas tutorialnya….
Hafidh
December 19th, 2011
REPLY QUOTE
sama-sama
}
}
14. yani
April 19th, 2012
REPLY QUOTE
saya mau tanya, kjalau program yg saya buka menerima exception, apa yg harus sy lakukan..:(
terima kasih
Hafidh
April 19th, 2012
REPLY QUOTE
ehm, kalau anda sebagai developer ya handle exception tersebut,
kalau sebagai user, maka hindari saja exceptionya, biasanya terdapat pesan errornya
CMIIW
15. sayastudentPUO
sayastudentPUO
September 14th, 2012
REPLY QUOTE
tolong email saya plezz….. saya harus submit tomorrow.. nini.amalina@yahoo.com
16. sayastudentPUO
September 14th, 2012
REPLY QUOTE
public class Q2
{
public static void main(String args[])
{
int [] arr = new int[5];
try
{
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int d = Integer.parseInt(args[3]);
int e = Integer.parseInt(args[4]);
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println(“5 parameters are required!”);
}
System.out.println(“THANK YOU”);
}
}
HELP ME! kenapa bila run saya masuk lebih dari 5 nombor xkeluar
“5 parameters are required!” ??????
Hafidh
September 14th, 2012
REPLY QUOTE
sudah saya reply via email ya.. semoga membantu
sayastudentPUO
September 16th, 2012
QUOTE
thanks :)) awak dah tlong sy
nurulhuda
November 14th, 2012
QUOTE
mas tolong jawabannya pm ke email sya juga ya, penasaran
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 11/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
17. sayastudentpuo
September 21st, 2012
REPLY QUOTE
develop a program to enable process of converting number to binary or octal number format.
Program will start by requesting user to key-in any number. then the user can choose whether
want to convert the number to binary number format or octal number format.your program will
generate the code based on the selection by user . the output will be display to user based on the
selection before. all the process in converting number to binary or octal format number will be
implement using stack with linked list.
HELP ME PLEASE
18. sayastudentpuo
September 21st, 2012
REPLY QUOTE
#include
#include
struct node{
int info;
struct node *link;
} *top=NULL;
void push(int a)
{
struct node *tmp;
tmp = (struct node *)malloc(sizeof(struct node));
tmp->info=a;
tmp->link=top;
top=tmp;
}/*End of push()*/
void pop()
{
struct node *tmp;
if(top == NULL)
printf(“Stack is empty\n”);
else
{ tmp=top;
printf(” %d”,tmp->info);
top=top->link;
free(tmp);
}
}
void popc()
{
struct node *tmp;
if(top == NULL)
printf(“Stack is empty\n”);
else
{ tmp=top;
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 12/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
{ tmp=top;
printf(” %c”,tmp->info);
top=top->link;
free(tmp);
}
}
void hexa(int n)
{
int a,i=1;
while(n>0)
{
a=n%16;
n=n/16;
if(a>9)
push(a-10+’A’);
else
push(a+’0′);
}
printf(“output is:”);
while(i0)
{
a=n%8;
n=n/8;
push(a);
}
printf(“\n octal equivalent of given number is”);
while(i0)
{
a=n%2;
n=n/2;
push(a);
}
printf(“\nBinary equivalent of given number is”);
while(i<=top)
{
pop();
}
main()
{
int n,item;
clrscr();
printf("1. Hexaconversion\n");
printf("2. Octal conversion\n");
printf("3. Binary conversion\n");
printf("4. Exit\n");
printf("Enter any choice\n");
scanf(" %d",&n);
printf("Enter element");
scanf(" %d",&item);
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 13/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
scanf(" %d",&item);
switch(n)
{
case 1:
hexa(item);
break;
case 2:
octal(item);
break;
case 3:
binary(item);
break;
case 4:
break;
default:
break;
}
getch();
}
19. sayastudentPUO
October 2nd, 2012
REPLY QUOTE
awak dah tidak komen kah
Hafidh
October 7th, 2012
REPLY QUOTE
maaf sedang sibuk akhir2 ini, jadi tidak sempat membalas, terlebih lagi pertanyaannya detail
& panjang.. saran saya, cobalah pecahkan terlebih dahulu, setelah itu baru ditanyakan letak
kesulitannya di bagian apa (jangan di copy paste seluruh code programnya). Thanks
20. sayastudentPUO
October 9th, 2012
REPLY QUOTE
import java.io.*;
while (true)
{
System.out.println("\n1. Movie Title");
System.out.println("2. Date");
System.out.println("3. Display of Seat");
System.out.println("4. Seat Selection");
System.out.println("5. Exit");
System.out.println("Enter your choice : ");
switch (Integer.parseInt(choice))
{
case 1:
System.out.println("a=prisoner of zenda");
System.out.println("b=Chinese Ghost");
System.out.println("c=FlyingBird");
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\nEnter movie = ");
String title = stdin.readLine();
break;
case 2:
System.out.println("Enter Date: ");
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\nEnter date = ");
String day = stdin.readLine();
System.out.println("Enter month = ");
String month = stdin.readLine();
case 3:
System.out.println(" \n [[[[[[[[[[[[[[[[[[[[[[[[[[[[[SCREEN]]]]]]]]]]]]]]]]]]]]]]]]]]]");
display(seats);
break;
case 4:
assign(seats);
break;
case 5:
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 15/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
case 5:
exit();
break;
default:
System.out.println("\nInvalid input");
}
}
}
display(seats);
if (seats[Integer.parseInt(row) – 1][i].equalsIgnoreCase(col)) {
seats[Integer.parseInt(row) – 1][i] = "X";
}
}
}
Macam mana mahu letak DATE, TIME, QUANTITY?? dan digunakan dalam assertion dan try
catch finally.. please help me..
21. ardhan
October 23rd, 2012
REPLY QUOTE
java.lang.ArrayIndexOutOfBoundsException
Hafidh
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 16/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
Hafidh
November 5th, 2012
REPLY QUOTE
itu berarti kamu akses array ke-i padahal panjang arraynya l dimana i < l.
contoh, misalkan kamu punya array berukuran 10, tapi kamu mau akses array yang ke 15,
maka akan ada error java.lang.arrayindexouto oundexception itu
22. Hafidh
December 1st, 2012
REPLY QUOTE
nurulhuda :
emailnya apa ya ?
23. badrun
December 2nd, 2012
REPLY QUOTE
brow blogmu kok bisa rapi gmn caranya
Hafidh
December 23rd, 2012
REPLY QUOTE
maksudnya code programnya ya ? saya menggunakan [ sourcecode ]
24. isnul
December 16th, 2012
REPLY QUOTE
Mas..saya buat project j2me pakai database postgre tetapi pas di run di output database terlihat
tapi di emulator tidak terlihat dan dibawa output database td ada
java.lang.arrayindexouto oundsexception :0 itu terjadi kslahan dimana mas.bisa tolong di
informasikan mas.mksh bnyk.
isnul
December 16th, 2012
REPLY QUOTE
Kirim ke email ini tlg ya mas…isnul_azwan@yahoo.com
27. Abdu
September 17th, 2013
REPLY QUOTE
Mas saya mau tanya, ketika saya menjalankan aplikasi java terus
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ keluar = 17/18
9/2/2017 Exception Handling dalam Java Programming | Hafidh
Mas saya mau tanya, ketika saya menjalankan aplikasi java terus keluar =
java.lang.NullPointerException, itu apa artinya ya ? terimakasih
28. sugi
December 11th, 2013
REPLY QUOTE
keren penjelasananya.. singkat, padat dan jelas #duaJempol
Blog at WordPress.com.
https://abdullahhafidh.wordpress.com/2010/04/05/exception-handling-dalam-java-programming/ 18/18