pertemuan 10(penanganan kesalahan)

Upload: kang-asep

Post on 07-Apr-2018

220 views

Category:

Documents


0 download

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