09 exceptions file i o
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

09 Exceptions & File I/O PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

09 Exceptions & File I/O. OOP Java. Materi hari ini. Exceptions Apa & kapan exception terjadi Menangani exception Menghindar (tidak menangani exception) File I/O Pengolahan file Tulis data ke file Baca data dari file. Dalam mengeksekusi program dapat terjadi banyak kejadian.

Download Presentation

09 Exceptions & File I/O

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


09 exceptions file i o

09 Exceptions & File I/O

OOP Java


Materi hari ini

Materi hari ini

  • Exceptions

    • Apa & kapan exception terjadi

    • Menangani exception

    • Menghindar (tidak menangani exception)

  • File I/O

    • Pengolahan file

    • Tulis data ke file

    • Baca data dari file


Dalam mengeksekusi program dapat terjadi banyak kejadian

Dalam mengeksekusi program dapat terjadi banyak kejadian ...

  • File tidak ada

  • Server down

  • Sehebat apapun Anda jadi DEVELOPER, Anda tidak dapat mengontrol semuanya

    THINGS CAN GO WRONG !


Bugs dan exceptional

Bugs dan Exceptional

  • Bugs adalah kesalahan (error) yang disebabkan KODE saya yang tidak benar (salah sintaks, dll).

    SEDANGKAN

  • Exceptional adalah kesalahan (error) yang disebabkan oleh situasi yang TIDAK DAPAT DIGARANSI 100% OKE ketika program dijalankan (saat runtime)


09 exceptions file i o

Jadi ...

  • Ketika Anda mengkode sebuah method yang beresiko, Anda harus menulis kode untuk meng-handle bagaimana apabila BAD THINGS seperti di atas terjadi ?

    Pertanyaannya…

  • Bagaimana saya tahu sebuah method itu BERESIKO ?

  • Dan di mana saya menaruh kode untuk meng-handle situasi exceptional tersebut ?


Seperti apa sih situasi exceptional yang dimaksud

Seperti apa sih Situasi EXCEPTIONAL yang dimaksud ?

  • Kode saya yang mengharapkan ADA FILE di DIREKTORI C:\JAVA, namun kenyataannya TIDAK ADA.

  • Kode saya yang mengharapkan SERVER SUDAH RUNNING, namun kenyataannya TIDAK seperti yg diharapkan.

  • Kode saya yang hendak membuat FILE BARU dengan nama Robinhood.java, namun kenyataannya sudah ADA file dg nama yg sama.

  • Kode saya membutuhkan suatu OBJEK TERTENTU namun kenyataannya objek tersebut TIDAK TERSEDIA


Contoh situasi exceptional pembagian dengan nol

Contoh Situasi Exceptional“Pembagian dengan NOL”

str = cons.bacaString();

a = Integer.parseInt(str);

str = cons.bacaString();

b = Integer.parseInt(str);

c = a / b;

//ada kemungkinan user memasukkan nilai 0 pada

// variabel b


Contoh situasi exceptional tipe data yg diinput user tidak sesuai

Contoh Situasi Exceptional :Tipe data yg diinput user tidak sesuai

//file : AddArguments.java

//note : tanpa exception handling,

// error jika argumen bukan integer semua

public class AddArguments {

public static void main(String[] args) {

int sum = 0;

for (int i = 0; i <args.length; i++) {

sum += Integer.parseInt(args[i]);

}

System.out.println("Sum = " + sum);

}

}


Apa yang terjadi ketika method yang saya panggil kemungkinan bukan saya yg tulis beresiko

Apa yang terjadi ketika method yang saya panggil (kemungkinan bukan saya yg tulis) BERESIKO ?

  • Contoh saya mau memanggil SEBUAH METHOD di dalam kelas yang bukan saya tulis

  • METHOD tersebut melakukan SESUATU yang BERESIKO, SESUATU yang mungkin TIDAK JALAN saat RUNTIME

  • Saya harus TAHU bahwa METHOD yang dipanggil BERESIKO

  • Sehingga saya dapat MENULIS KODE yang meng-handle BILA KEGAGALAN TERJADI.

    SIAP2 aja, SEDIA PAYUNG SEBELUM HUJAN!


09 exceptions file i o

METHOD di JAVA menggunakan exceptions untuk memberitahu kode yang memanggilnya bahwa,”Something Bad Happened. Saya GAGAL mengatasinya ”


Bagaimana cara untuk meng handle kode yang beresiko

Bagaimana CARA untuk meng-handle KODE yang beresiko ?

  • Caranya adalah dengan MEMBUNGKUS kode BERESIKO di dalam bentuk try/catch

  • Contoh MEMBUNGKUS dengan bentuk try/catch

    public void play(){

    try{

    //kode beresiko disini

    } catch(…) {//tangkap exceptionnya

    //penanganan jika terjadi kesalahan

    }

    } // close


Exception adalah sebuah objek dari kelas exception

exception adalah sebuah objek ...dari kelas Exception

try{

// kode beresiko

} catch(Exception ex){

// try to recover

}


Yang penting adalah tahu method yang throws exception dan method yang catch nya

Yang PENTING adalah TAHU Method yang throws exception dan Method yang catch-nya

public void takeRisk() throws BadException{

if(gagalSemua){

throw new BadException();

}

}

//---------------------------------

public void crossFingers(){

try{

anObject.takeRisk();

} catch(BadException ex){

System.out.println(“Aaargh!”);

ex.printStackTrace();

}

System.out.println(“We made it!”);

}


Contoh situasi exceptional tipe data yg diinput user tidak sesuai sudah ditangani

Contoh Situasi Exceptional : Tipe data yg diinput user tidak sesuai (sudah ditangani)

//file : AddArguments2.java

//note : dengan exception handling

public class AddArguments2 {

public static void main(String[] args) {

try {

int sum = 0;

for (int i = 0; i <args.length; i++) {

sum += Integer.parseInt(args[i]);

}

System.out.println("Sum = " + sum);

} catch (NumberFormatException nfe) {

System.err.println("Salah satu argumen bukan integer!");

}

}

}


Contoh situasi exceptional tipe data yg diinput user tidak sesuai sudah ditangani dg lebih baik

Contoh Situasi Exceptional :Tipe data yg diinput user tidak sesuai (sudah ditangani dg lebih baik)

//file : AddArguments3.java

//note : dengan exception handling yg lebih baik

public class AddArguments3 {

public static void main(String[] args) {

int sum = 0;

for (int i = 0; i <args.length; i++) {

try {

sum += Integer.parseInt(args[i]);

} catch (NumberFormatException nfe) {

System.err.println("Argumen ["+ args[i] + "] bukan integer!");

}

}

System.out.println("Sum = " + sum);

}

}


Kapan finally digunakan

Kapan finally digunakan ?

  • Kalau developer mau masak sesuatu pake kompor gas, maka developer memulainya dengan memutar tombol untuk menyalakan api di kompor

  • Kalau gas keluar tapi api tidak nyala (FAILURE), developer HARUS MEMADAMKANNYA

  • Kalau api nyala (SUCCESS), selesai masak developer HARUS MEMADAMKANNYA juga

  • Jadi kode di dalam blok finally HARUS DIJALANKAN MESKIPUN TERJADI EXCEPTION ATAU TIDAK


Contoh penggunaan finally

Contoh penggunaan finally

try{

turnKomporOn();

x.masak();

} catch( MasakException ex ){

ex.printStackTrace();

} finally{

turnKomporOff();

}


09 exceptions file i o

Sebaiknya Developer mengkode catch block yang berbeda untuk setiap exception yang perlu diperlakukan bedaBila ada blok catch lebih dari satu, maka blok catch harus diurutkan dari terkecil ke terbesar

try{

laundry.doLaundry();

} catch(TShirtException tex){

// silakan kode untuk TShirtException

} catch(BajuException dex){

// silakan kode untuk DalemanException

} catch(PakaianException pex){

// silakan untuk semua exception

}


Kalau ingin tidak menghandle hindari saja

Kalau ingin TIDAK menghandle, HINDARI SAJA ...

MENGHINDARI dengan cara MENDEKLARASIKAN exception tersebut

public void foo() throws ReallyBadException{

// call risky method without a try/catch

laundry.doLaundry();

}


  • Login