Java menyediakan dua kategori besar untuk eksepsi yang disebut sebagai checked exception dan 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
1.
2.
Sedangkan eksepsi yang muncul sebagai akibat dari isu environment software yang ini jarang sekali atau sulit
sekali untuk dihandle- disebut sebagai error, misalnya running out memory.
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:
1.
2.
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 :
java.lang.Exception: kesalahan terjadi
Seperti yang anda lihat pada program diatas, pada keyword throw new Exception(kesalahan terjadi); akan
melempar object bertipe exception yang merupakansubclass dari class Exception sehingga akan dianggap sebagai
suatu kesalahan yang harus ditangkap oleh keyword catch.
Perhatikan contoh berikut ini :
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 :
object dengan tipe kelas B
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();
}
}
throw
Keyword throw digunakan untuk melempar suatu eksepsi dalam program, contoh kode:
If (ada yang salah)
Throw new Exception(Terjadi kesalhan nih..!!);
throws
Sedangkan 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. Contoh kode :
void methodLagiPusing() throws IOException, Exception {}
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).
Keyword throw digunakan untuk melempar object bertipe class atau subclass
java.lang.Throwable atau digunakan untuk melempar suatuexception dalam program.
dari
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");
}
}
}
c. IndexOutBoundsException
d. FileNotFoundException
8. Buatlah contoh aplikasi multiple catch dengan 3 exception handling
9. Buatlah contoh aplikasi exception try bersarang,
10. Jelaskan listing dibawah ,
public class contohsatudelapan {
public static void test(int a, int b){
try{
int c = a/b;
System.out.println("Hasil bagi:" +c);
int[] Arr = {1,2,3,4,5};
Arr[10] = 11;
}catch (ArithmeticException ae){
System.out.println("terdapat pembagian
dengan 0");
System.out.println(ae);
}catch (ArrayIndexOutOfBoundsException obe){
System.out.println("Indeks di luar
rentang");
System.out.println(obe);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test (4, 0);
System.out.println();
test (12,4);
}
}