09 exceptions file i o
Download
Skip this Video
Download Presentation
09 Exceptions & File I/O

Loading in 2 Seconds...

play fullscreen
1 / 20

09 Exceptions & File I/O - PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 09 Exceptions & File I/O' - cassie


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
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)
slide5
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!

slide10
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();

}

slide19

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();

}

ad