pertemuan 10(penanganan kesalahan)
TRANSCRIPT
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
1/9
PENANGANAN KESALAHAN
ada 2 jenis kesalahan
1. kesalahan pada saat kompilasi.
2. Kesalahan pad saat bejalan
apabila kesalahan kompilasi terjadi ketika proses kompilasi maka proses
akan dibatalkan,namaun jika kesalahan tersebut adalah kesalahan pada saat
berjalan malka program akan dapat berjalan namun akan menampilkan
pesan error.
Contoh:
public class ErrorHandling {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic herea=4;
int a=4;
int b=0;
int c=a/b;
System.out.println(c);
}
}
Sekilas program diatasa terlihat benar dan tidak menujukan error,namaun
pada asat dijalankan akan menampilkan pesan error.
Exception in thread "main" java.lang.ArithmeticException: / by zero
at asep.javaDasar5.ErrorHandling.main(ErrorHandling.java:21)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
2/9
Oleh karena itu dalam sebuah program perlu adanya penanganan error.
4.1. Penanganan kesalahan
untuk menagani keslahan kita bisa menggunakan statement try catch
Try{
//isi yanag mungjkin error
}catch(jenis error){
//dijalankan jika terjadi error
}
Contoh untuk penanganan error pada kode diatas.
public class ErrorHandling {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try{
// TODO code application logic here;
int a=4;
int b=0;
int c=a/b;
System.out.println(c);
}catch(Throwable e){
System.out.println("wah ada error nih !!");
System.out.println(e.getMessage());
}
}
}
Maka jika dijalankan akan menampilkan peasn :
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
3/9
run:
wah ada error nih !!
/ by zero
BUILD SUCCESSFUL (total time: 0 seconds)
Tapi jika kita ganti angka 0 dengan angka 2 maka akan menghasilkan
keluaran
run:
2
BUILD SUCCESSFUL (total time: 0 seconds)
4.2. Penanganan secara bertingkat
try catch tidak hanya menangani satu kesalahan tapi juga dapat menanganibeberapa kesalahan seperti parameter dibawah ini:
Try{
//blok kode yang mungki terjadi error
}catch(jenis error 1){
//pesan error 1
}catch(jenis error 2){
//pesan srror 2
}
4.3. Pelontaran kesalahan
Kadang suatu saat kita membutuhkan pean error.misalakan kita membuat
kelas orang,klas orang ini memiliki atribute nama,jika nama tidak diisi maka
akan terjadi error:
contoh:
public class Orang {
private String nama;
public String getNama() {
return nama;
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
4/9
}
public void setNama(String nama)throws Throwable {
if(nama==null){
throw new Throwable("nama harus diisi");
}
this.nama = nama;
}
}
Untuk melontarkan kesalahan kita membutuhkan kata kunci throw dan
metode yang mungkin melontarkan kesalahan harus memiiliki throws dan
kelas exceptionnya.
Contohnya jika kita mengunakan kelas orang dan tidak mengisis nama maka
akan menampilkan pesan error:
public class Orang {
private String nama;
public String getNama() {
return nama;
}
public void setNama(String nama)throws Throwable {
if(nama==null){
throw new Throwable("nama harus diisi");
}
this.nama = nama;
}
}
Maka jika dijalankan akan menampilkan KELUARAN.
NAMA HARUS DIISI
4.4. Membuat kelas exception
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
5/9
Kelas exceptiom merupakan kelas error yang digunakan untk membangun
kelas exception yang akan ditagani.errpr ini disebut kompilasi exception yang
artinya wajib ditanani.
Untuk membuatny kita hanya membutuhkan kelas turunan dari kelas
exception.
package asep.javaDasar5;
/**
*
* @author asep
*/
public class ContohException extends Exception{
public ContohException(String pesan) {
super(pesan);
}
}
3.5. Membuat keals runtime exception
kelas ini merupakan kelas error yang errornya terjadi ketika aplikasi
dijalankan.mirip dengan pembagian dengan 0,kita bisa tidak menangkap
error tersebut.
Untuk membutatnya kita menggunakan kelas turunan dari runetime
exception.
package asep.javaDasar5;
/**
*
* @author asep
*/
public class ContohRunetimeException extends RuntimeException{
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
6/9
public ContohRunetimeException(String pesan) {
super(pesan);
}
}
Contoh kita buat error pada kelas mahasiswa dengan pesan error diatas.
package asep.javaDasar5;
/**
*
* @author asep
*/
public class Mahasiswa {
private String nim;
public String getNim() {
return nim;
}
public void setNim(String nim) throws ContohRunetimeException {
if(nim==null){
throw new ContohRunetimeException("nim tidak boleh kosong");
}
this.nim = nim;
}
}
Kemudian dengan tanpa menangkap errorpun kita bisa langsung
menggunakan setNim().
package asep.javaDasar5;
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
7/9
/**
*
* @author asep
*/
public class MahasiswaPangil {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Mahasiswa m=new Mahasiswa();
m.setNim("010801503125082");
m.setNim(null);
}
}
4.6. Blok finaly
blok finaly adalah blok yang dijalankan pada proses try catch,baik terjadierror ataupun tidak.proses penulisannya adalah pada bagian akhir blok.
public class MahasiswaPangil {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
Mahasiswa m=new Mahasiswa();
m.setNim("010801503125082");
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
8/9
}catch(ContohRunetimeException e){
System.out.println("ada srror nih.....!");
System.out.println(e.getMessage());
}finally{
System.out.println("ni conto final dijalankan");
}
}
}
Jika dijalankan maka akan menampilakn ni conto final dijalankan
dan jika kita tidak mengisi setnamanya atau setnamanya menjadi null
public class MahasiswaPangil {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
Mahasiswa m=new Mahasiswa();
m.setNim(null);
}catch(ContohRunetimeException e){
System.out.println("ada error nih.....!");
System.out.println(e.getMessage());
}finally{
System.out.println("ni conto final dijalankan");
}
}
-
8/6/2019 Pertemuan 10(penanganan kesalahan)
9/9
}
Dan jika dijalankan maka akan menampilkan keluaran
ada error nih....!
nim tidak boleh kosong
ni contoh final dijakankan