Oleh: Avrilian Briliansyah
Layaknya hidup, dalam pemrograman kita tidak bisa terus berharap bahwa program kita akan selalu berjalan seperti yang kita inginkan. Ketika program berjalan, error atau bug bisa terjadi. Konsekuensinya adalah alur kerja program kita menjadi rusak atau bahkan bisa membuat program kita crash.
Ketika error terjadi di dalam method, method akan melemparkan object Exception yang berisi informasi tentang error yang terjadi ke runtime system. Runtime system akan mencari menemukan sesuatu untuk menanganinya. Hal ini disebut sebagai exception handler .
Exception handler akan menangani error yang ada. Dan kita bisa memanfaatkan exception ini untuk menangani error yang mungkin akan terjadi di program kita sesusai dengan keinginan kita.
Sesuai namanya keyword ini digunakan untuk mencoba menjalankan sebuah block program. try harus dipasangkan dengan catch atau finally.
Digunakan untuk menangkap kesalahan pada block try.
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) {
// Kode akan dieksekusi apabila terjadi error pada block try
System.err.println(kesalahan);
}
}
}
catch juga dapat digunakan berulang-ulang untuk type exception yang berbeda-beda.
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(NullPointerException e) {
}
catch(ArrayIndexOutOfBoundsException e) {
}
catch(Exception e) {
}
}
}
Adalah blok untuk kode program dimana kode dalam block akan dieksekusi baik saat terdapat error maupun tidak.
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”);
}
}
}
Diguanakan untuk membuat exception secara manual.
public class A {
public static void main(String[] args) {
try {
throw new Exception("kesalahan terjadi");
}
catch(Exception e) {
System.out.println(e);
}
}
}
throw akan melempar objek bertipe exception dan catch akan menangkapnya.
public class A
{
public static void main(String[] args) {
try {
throw new B();
//cobalah hilangkan “throw” ganti dengan “new B();” saja
}
catch(Exception e) {
System.out.println(e);
}
}
}
class B extends Exception {
B() {
}
public String toString() {
return “object dengan tipe kelas B”;
}
}
Diatas, class B me-extends class Exception. Apabila kita me-throw new B() maka B akan ditangkap oleh catch.
throws digunakan pada method yang mungkin menghasilkan suatu kesalahan yang perlu ditangkap.
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();
}
}
Diatas, method f() akan melemparkan exception. Perlu diingat bahwa method yang diberi throws tidak harus selalu melemparkan exception saat dipanggil.


Sesudah diperbaiki




Sesudah diperbaiki




Sesudah diperbaiki




Sesudah diperbaiki




Pada program diatas try digunakan untuk mencoba melakukan operasi aritmatika yang berpotensi menghasilkan exception. catch digunakan untuk menangkap error tersebut.


Pada program diatas try digunakan untuk mencoba memanggil method yang menghasilkan exception. catch digunakan untuk menangkap error tersebut.


Pada program diatas try digunakan untuk mencoba melempar exception secara sengaja. catch digunakan untuk menangkap exception tersebut.


Pada program diatas throws diimplementasikan ke method yang berpotensi untuk menghasilkan exception.
Setelah class PDelapan diubah




Setelah "This is a string" dikosongi







