SlideShare a Scribd company logo
1 of 21
Download to read offline
Exception Handling
Prepared by Viska Mutiawani
1 viska@unsyiah.ac.id
Konsep penting
 Assertion
 Exception handling: try-catch-finally
2 viska@unsyiah.ac.id
AssertionAssertion
viska@unsyiah.ac.id3
What is assertion?
 Assertion merupakan statement dalam bahasa Java
yang dapat digunakan untuk menguji program
berdasarkan asumsi-asumsi.
 Sewaktu eksekusi assertion, asumsi tersebut
dipercaya benar.
Jika gagal, maka JVM akan melempar error bernama Jika gagal, maka JVM akan melempar error bernama
AssertionError.
 Diperkenalkan pada Java versi ke 4.
viska@unsyiah.ac.id4
Kegunaan assertion
 Berguna untuk mendeteksi dan mengoreksi error
pemrograman.
 Assertion utamanya digunakan untuk tujuan
pengujian.
viska@unsyiah.ac.id5
Syntax assertion
 Ada 2 cara membuat assertion:
 assert expression;
 assert expression1 : expression2;
 Fitur assertion secara default dalam kondisi disable
(tidak aktif).
 Jadi anda harus enable (aktifkan) dahulu. Caranya:
 Gunakan, -ea or -enableassertions pada perintah java.
 Contoh sesudah mengkompil: javac
AssertionExample.java
 Maka run dengan cara: java -ea AssertionExample
viska@unsyiah.ac.id6
Contoh
import java.util.Scanner;
class AssertionExample{
public static void main( String args[] ){
Scanner scanner = new Scanner( System.in );
System.out.print("Enter ur age ");
int value = scanner.nextInt();int value = scanner.nextInt();
assert value>=18:" Not valid";
System.out.println("value is "+value);
}
}
Contoh hasil output:
Output: Enter ur age 11
Exception in thread "main" java.lang.AssertionError: Not valid
viska@unsyiah.ac.id7
Kondisi tidak menggunakan assertion
 Ada beberapa keadaan dimana anda sebaiknya
tidak menggunakan assertion:
 Diambil dari web Oracle, assertion sebaiknya tidak
digunakan untuk mengecek argumen pada method
public. Karena dapat menghasilkan runtime exception
seperti: IllegalArgumentException, NullPointerExceptionseperti: IllegalArgumentException, NullPointerException
etc.
 Jangan gunakan assertion, jika anda tidak menginginkan
error pada situasi apapun.
viska@unsyiah.ac.id8
Exception handling: Try-catch-Exception handling: Try-catch-
finally
viska@unsyiah.ac.id9
What is exception?
 Exception: kondisi abnormal
 Pada bahasa Java, exception merupakan suatu
peristiwa yang mengganggu jalannya program
secara normal.
 Berupa objek yang dilempar sewaktu runtime.
viska@unsyiah.ac.id10
What is exception handling?
 Merupakan mekanisme untuk menangani error
runtime seperti ClassNotFound, IO, SQL, Remote
etc.
 Kegunaannya:
 Menjaga aliran normal dari program/aplikasi
viska@unsyiah.ac.id11
Skenario
 Andai ada statement seperti di bawah:
statement 1;
statement 2;
statement 3;
statement 4;
statement 5;//exception occurs
statement 6;
statement 7;statement 7;
statement 8;
statement 9;
statement 10;
 Jika exception muncul pada statement 5, maka
statement 6-10 tidak akan dijalankan.
 Namun jika kita melakukan exception handling, maka
statement 6-10 bisa dijalankan.
viska@unsyiah.ac.id12
Hirarki class Exception
viska@unsyiah.ac.id13
Tipe-tipe exception
 Checked exception
 Dicek saat kompilasi
 Class yang extend Throwable (kecuali RuntimeException
dan Error) merupakan checked exception.
 Unchecked exception
 Tidak dicek saat kompilasi, baru dicek saat runtime Tidak dicek saat kompilasi, baru dicek saat runtime
 Class yang extend RuntimeException termasuk
unchecked exception, seperti ArithmeticException,
NullPointerException, ArrayIndexOutOfBoundsException
 Error
 Keadaan fatal yang terjadi
 Contoh: OutOfMemoryError, VirtualMachineError,
AssertionError
viska@unsyiah.ac.id14
Contoh skenario unchecked exception
 Pembagian dengan 0.
int a=50/0; //ArithmeticException
 Jika variabel menyimpan null, dan variabel tadi
dipakai.
String s=null;
System.out.println(s.length());//NullPointerException
 Kesalahan format number
String s="abc";
int i=Integer.parseInt(s);//NumberFormatException
 Memasukkan data ke dalam indeks yang salah pada
array
int a[]=new int[5];
a[10]=50; //ArrayIndexOutOfBoundsException
viska@unsyiah.ac.id15
Exception handling dengan try-catch-
finally
 Salah satu cara untuk menghandle exception adalah
dengan menggunakan blok try-catch-finally.
 Try: berisi bagian yang akan menghasilkan exception
 Catch: jika exception muncul akan ditangkap dan
dihandle
 Finally: akan selalu dilakukan walau tidak ada exception Finally: akan selalu dilakukan walau tidak ada exception
 Syntax:
try{
//code that may throw exception
}
catch(Exception_class_Name ref){}
finally{}
viska@unsyiah.ac.id16
Contoh sederhana
public class Testtrycatch2{
public static void main(String args[]){
try{
int data=50/0;
}catch(ArithmeticException e){System.out.println(e);}
System.out.println("rest of the code...");
}
}
viska@unsyiah.ac.id17
Multiple catch
 Jika anda membuat coding untuk memproses
sesuatu dan akan menghasilkan beberapa jenis
exception, anda dapat menggunakan banyak catch
sekaligus.
 Namun saat ada satu exception maka hanya akan
ada satu catch yang paling sesuai yang digunakan.ada satu catch yang paling sesuai yang digunakan.
 Multiple catch blok harus disusun dari yang paling
spesifik hingga yang paling umum.
viska@unsyiah.ac.id18
Mana yang betul?
public class TestMultipleCatchBlock{
public static void main(String args[]){
try{
int a[]=new int[5];
a[5]=30/0;
}
catch(ArithmeticException e){
System.out.println("task1 is completed"
);}
class TestMultipleCatchBlock1{
public static void main(String args[]){
try{
int a[]=new int[5];
a[5]=30/0;
}
catch(Exception e){);}
catch(ArrayIndexOutOfBoundsExceptio
n e){System.out.println("task 2 complet
ed");}
catch(Exception e){System.out.println("c
ommon task completed");}
System.out.println("rest of the code...");
}
}
System.out.println("common task complete
d");}
catch(ArithmeticException e){
System.out.println("task1 is completed");}
catch(ArrayIndexOutOfBoundsExceptio
n e){System.out.println("task 2 completed"
);}
System.out.println("rest of the code...");
}
}
viska@unsyiah.ac.id19
Nested Try
 Try juga bisa nested (berada di dalam try yang lain) bila diperlukan.
class Excep6{
public static void main(String args[]){
try{
try{
System.out.println("going to divide");
int b =39/0;
}catch(ArithmeticException e){System.out.println(e);}
try{try{
int a[]=new int[5];
a[5]=4;
}catch(ArrayIndexOutOfBoundsException e){System.out.println(e);}
System.out.println("other statement);
}catch(Exception e){System.out.println("handeled");}
System.out.println("normal flow..");
}
}
viska@unsyiah.ac.id20
Finally block
 Digunakan untuk
eksekusi code penting
seperti tutup
connection, tutup
stream.
 Akan selalu dieksekusi Akan selalu dieksekusi
saat exception dihandle
atau tidak dihandle.
 Haruslah sesudah block
try atau block catch.
viska@unsyiah.ac.id21

More Related Content

What's hot

03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasi
KuliahKita
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Melina Krisnawati
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
wahyuniwulan
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan
Topan Helmi Nicholas
 
Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan php
Materi Kuliah Online
 

What's hot (20)

Mata Kuliah Basis Data
Mata Kuliah Basis DataMata Kuliah Basis Data
Mata Kuliah Basis Data
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Skenario
SkenarioSkenario
Skenario
 
Data Mining - Naive Bayes
Data Mining - Naive BayesData Mining - Naive Bayes
Data Mining - Naive Bayes
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasi
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Database security (ppt)
Database security (ppt)Database security (ppt)
Database security (ppt)
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)
 
OOP - Collections
OOP - CollectionsOOP - Collections
OOP - Collections
 
Kelompok 8 - Demo implementasi Role & Privilege pada Database Oracle & my SQL
Kelompok 8 - Demo implementasi Role & Privilege pada Database Oracle & my SQLKelompok 8 - Demo implementasi Role & Privilege pada Database Oracle & my SQL
Kelompok 8 - Demo implementasi Role & Privilege pada Database Oracle & my SQL
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaPBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
Representasi Pengetahuan
Representasi PengetahuanRepresentasi Pengetahuan
Representasi Pengetahuan
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan
 
Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan php
 

Similar to 1 exception handling

Exception Handling
Exception HandlingException Handling
Exception Handling
Dany Liu's
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception Handling
Individual Consultants
 
Jeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan AssertionJeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan Assertion
Individual Consultants
 

Similar to 1 exception handling (20)

Java7
Java7Java7
Java7
 
Exception Handling
Exception HandlingException Handling
Exception Handling
 
Jeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handlingJeni intro1-bab12-dasar exception handling
Jeni intro1-bab12-dasar exception handling
 
Jeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception HandlingJeni Intro1 Bab12 Dasar Exception Handling
Jeni Intro1 Bab12 Dasar Exception Handling
 
14741 9 exception & assertion
14741 9 exception & assertion14741 9 exception & assertion
14741 9 exception & assertion
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf8_Penangan Eksepsi.pdf
8_Penangan Eksepsi.pdf
 
8 penangan eksepsi
8 penangan eksepsi8 penangan eksepsi
8 penangan eksepsi
 
4. Materi Java Eclipse 4
4. Materi Java Eclipse 44. Materi Java Eclipse 4
4. Materi Java Eclipse 4
 
pbo 8 ervan
pbo 8 ervanpbo 8 ervan
pbo 8 ervan
 
Jeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan AssertionJeni Intro2 Bab02 Exception Dan Assertion
Jeni Intro2 Bab02 Exception Dan Assertion
 
6497 13 penanganan pesan exception
6497 13 penanganan pesan exception6497 13 penanganan pesan exception
6497 13 penanganan pesan exception
 
29934 materi dan tugas pbo lanjut exception_
29934 materi dan tugas pbo lanjut  exception_29934 materi dan tugas pbo lanjut  exception_
29934 materi dan tugas pbo lanjut exception_
 
Laporan pboii 2yosa
Laporan pboii 2yosaLaporan pboii 2yosa
Laporan pboii 2yosa
 
OOP - Exception
OOP - ExceptionOOP - Exception
OOP - Exception
 
Tugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi ObjekTugas praktek 3 Pemrograman Berorientasi Objek
Tugas praktek 3 Pemrograman Berorientasi Objek
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf
 
2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf2_Struktur_kontrol.pdf
2_Struktur_kontrol.pdf
 
18314 minggu 12 penanganan kesalahan menangkap exception
18314 minggu 12 penanganan kesalahan menangkap exception18314 minggu 12 penanganan kesalahan menangkap exception
18314 minggu 12 penanganan kesalahan menangkap exception
 
17728 minggu 12 penanganan kesalahan menangkap exception
17728 minggu 12 penanganan kesalahan menangkap exception17728 minggu 12 penanganan kesalahan menangkap exception
17728 minggu 12 penanganan kesalahan menangkap exception
 

More from Fajar Baskoro

Membangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan AppsheetMembangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan Appsheet
Fajar Baskoro
 

More from Fajar Baskoro (20)

Generasi Terampil Digital Skill-2023.pptx
Generasi Terampil Digital Skill-2023.pptxGenerasi Terampil Digital Skill-2023.pptx
Generasi Terampil Digital Skill-2023.pptx
 
Cara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarterCara Membuat Kursus Online Wordpress-tutorstarter
Cara Membuat Kursus Online Wordpress-tutorstarter
 
PPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival RamadhanPPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
PPT-Kick Off Double Track 2024 melaksanakan Festival Ramadhan
 
Buku Inovasi 2023 - 2024 konsep capaian KUS
Buku Inovasi 2023 - 2024 konsep capaian  KUSBuku Inovasi 2023 - 2024 konsep capaian  KUS
Buku Inovasi 2023 - 2024 konsep capaian KUS
 
Pemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptxPemaparan Sosialisasi Program Dual Track 2024.pptx
Pemaparan Sosialisasi Program Dual Track 2024.pptx
 
Executive Millennial Entrepreneur Award 2023-1a-1.pdf
Executive Millennial Entrepreneur Award  2023-1a-1.pdfExecutive Millennial Entrepreneur Award  2023-1a-1.pdf
Executive Millennial Entrepreneur Award 2023-1a-1.pdf
 
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx1-Executive Millennial Entrepreneur Award  2023-1-cetak.pptx
1-Executive Millennial Entrepreneur Award 2023-1-cetak.pptx
 
Executive Millennial Entrepreneur Award 2023-1.pptx
Executive Millennial Entrepreneur Award  2023-1.pptxExecutive Millennial Entrepreneur Award  2023-1.pptx
Executive Millennial Entrepreneur Award 2023-1.pptx
 
Pemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptxPemrograman Mobile - JetPack Compose1.pptx
Pemrograman Mobile - JetPack Compose1.pptx
 
Evaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi KaltimEvaluasi KPP Program Dual Track Provinsi Kaltim
Evaluasi KPP Program Dual Track Provinsi Kaltim
 
foto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolahfoto tenda digital skill program dari sekolah
foto tenda digital skill program dari sekolah
 
Meraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remajaMeraih Peluang di Gig Economy yang cocok bagi remaja
Meraih Peluang di Gig Economy yang cocok bagi remaja
 
Membangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan AppsheetMembangun aplikasi mobile dengan Appsheet
Membangun aplikasi mobile dengan Appsheet
 
epl1.pdf
epl1.pdfepl1.pdf
epl1.pdf
 
user.docx
user.docxuser.docx
user.docx
 
Dtmart.pptx
Dtmart.pptxDtmart.pptx
Dtmart.pptx
 
DualTrack-2023.pptx
DualTrack-2023.pptxDualTrack-2023.pptx
DualTrack-2023.pptx
 
BADGE.pptx
BADGE.pptxBADGE.pptx
BADGE.pptx
 
womenatwork.pdf
womenatwork.pdfwomenatwork.pdf
womenatwork.pdf
 
Transition education to employment.pdf
Transition education to employment.pdfTransition education to employment.pdf
Transition education to employment.pdf
 

Recently uploaded

SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.pptSEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
AlfandoWibowo2
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
JarzaniIsmail
 
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
nabilafarahdiba95
 

Recently uploaded (20)

SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAYSOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.pptSEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
SEJARAH PERKEMBANGAN KEPERAWATAN JIWA dan Trend Issue.ppt
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKAMODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
MODUL AJAR IPAS KELAS 6 KURIKULUM MERDEKA
 
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptxTEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
TEKNIK MENJAWAB RUMUSAN SPM 2022 - UNTUK MURID.pptx
 
Program Kerja Public Relations - Perencanaan
Program Kerja Public Relations - PerencanaanProgram Kerja Public Relations - Perencanaan
Program Kerja Public Relations - Perencanaan
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
Membaca dengan Metode Fonik - Membuat Rancangan Pembelajaran dengan Metode Fo...
 
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.pptHAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
HAK DAN KEWAJIBAN WARGA NEGARA ppkn i.ppt
 

1 exception handling

  • 1. Exception Handling Prepared by Viska Mutiawani 1 viska@unsyiah.ac.id
  • 2. Konsep penting  Assertion  Exception handling: try-catch-finally 2 viska@unsyiah.ac.id
  • 4. What is assertion?  Assertion merupakan statement dalam bahasa Java yang dapat digunakan untuk menguji program berdasarkan asumsi-asumsi.  Sewaktu eksekusi assertion, asumsi tersebut dipercaya benar. Jika gagal, maka JVM akan melempar error bernama Jika gagal, maka JVM akan melempar error bernama AssertionError.  Diperkenalkan pada Java versi ke 4. viska@unsyiah.ac.id4
  • 5. Kegunaan assertion  Berguna untuk mendeteksi dan mengoreksi error pemrograman.  Assertion utamanya digunakan untuk tujuan pengujian. viska@unsyiah.ac.id5
  • 6. Syntax assertion  Ada 2 cara membuat assertion:  assert expression;  assert expression1 : expression2;  Fitur assertion secara default dalam kondisi disable (tidak aktif).  Jadi anda harus enable (aktifkan) dahulu. Caranya:  Gunakan, -ea or -enableassertions pada perintah java.  Contoh sesudah mengkompil: javac AssertionExample.java  Maka run dengan cara: java -ea AssertionExample viska@unsyiah.ac.id6
  • 7. Contoh import java.util.Scanner; class AssertionExample{ public static void main( String args[] ){ Scanner scanner = new Scanner( System.in ); System.out.print("Enter ur age "); int value = scanner.nextInt();int value = scanner.nextInt(); assert value>=18:" Not valid"; System.out.println("value is "+value); } } Contoh hasil output: Output: Enter ur age 11 Exception in thread "main" java.lang.AssertionError: Not valid viska@unsyiah.ac.id7
  • 8. Kondisi tidak menggunakan assertion  Ada beberapa keadaan dimana anda sebaiknya tidak menggunakan assertion:  Diambil dari web Oracle, assertion sebaiknya tidak digunakan untuk mengecek argumen pada method public. Karena dapat menghasilkan runtime exception seperti: IllegalArgumentException, NullPointerExceptionseperti: IllegalArgumentException, NullPointerException etc.  Jangan gunakan assertion, jika anda tidak menginginkan error pada situasi apapun. viska@unsyiah.ac.id8
  • 9. Exception handling: Try-catch-Exception handling: Try-catch- finally viska@unsyiah.ac.id9
  • 10. What is exception?  Exception: kondisi abnormal  Pada bahasa Java, exception merupakan suatu peristiwa yang mengganggu jalannya program secara normal.  Berupa objek yang dilempar sewaktu runtime. viska@unsyiah.ac.id10
  • 11. What is exception handling?  Merupakan mekanisme untuk menangani error runtime seperti ClassNotFound, IO, SQL, Remote etc.  Kegunaannya:  Menjaga aliran normal dari program/aplikasi viska@unsyiah.ac.id11
  • 12. Skenario  Andai ada statement seperti di bawah: statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7;statement 7; statement 8; statement 9; statement 10;  Jika exception muncul pada statement 5, maka statement 6-10 tidak akan dijalankan.  Namun jika kita melakukan exception handling, maka statement 6-10 bisa dijalankan. viska@unsyiah.ac.id12
  • 14. Tipe-tipe exception  Checked exception  Dicek saat kompilasi  Class yang extend Throwable (kecuali RuntimeException dan Error) merupakan checked exception.  Unchecked exception  Tidak dicek saat kompilasi, baru dicek saat runtime Tidak dicek saat kompilasi, baru dicek saat runtime  Class yang extend RuntimeException termasuk unchecked exception, seperti ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException  Error  Keadaan fatal yang terjadi  Contoh: OutOfMemoryError, VirtualMachineError, AssertionError viska@unsyiah.ac.id14
  • 15. Contoh skenario unchecked exception  Pembagian dengan 0. int a=50/0; //ArithmeticException  Jika variabel menyimpan null, dan variabel tadi dipakai. String s=null; System.out.println(s.length());//NullPointerException  Kesalahan format number String s="abc"; int i=Integer.parseInt(s);//NumberFormatException  Memasukkan data ke dalam indeks yang salah pada array int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException viska@unsyiah.ac.id15
  • 16. Exception handling dengan try-catch- finally  Salah satu cara untuk menghandle exception adalah dengan menggunakan blok try-catch-finally.  Try: berisi bagian yang akan menghasilkan exception  Catch: jika exception muncul akan ditangkap dan dihandle  Finally: akan selalu dilakukan walau tidak ada exception Finally: akan selalu dilakukan walau tidak ada exception  Syntax: try{ //code that may throw exception } catch(Exception_class_Name ref){} finally{} viska@unsyiah.ac.id16
  • 17. Contoh sederhana public class Testtrycatch2{ public static void main(String args[]){ try{ int data=50/0; }catch(ArithmeticException e){System.out.println(e);} System.out.println("rest of the code..."); } } viska@unsyiah.ac.id17
  • 18. Multiple catch  Jika anda membuat coding untuk memproses sesuatu dan akan menghasilkan beberapa jenis exception, anda dapat menggunakan banyak catch sekaligus.  Namun saat ada satu exception maka hanya akan ada satu catch yang paling sesuai yang digunakan.ada satu catch yang paling sesuai yang digunakan.  Multiple catch blok harus disusun dari yang paling spesifik hingga yang paling umum. viska@unsyiah.ac.id18
  • 19. Mana yang betul? public class TestMultipleCatchBlock{ public static void main(String args[]){ try{ int a[]=new int[5]; a[5]=30/0; } catch(ArithmeticException e){ System.out.println("task1 is completed" );} class TestMultipleCatchBlock1{ public static void main(String args[]){ try{ int a[]=new int[5]; a[5]=30/0; } catch(Exception e){);} catch(ArrayIndexOutOfBoundsExceptio n e){System.out.println("task 2 complet ed");} catch(Exception e){System.out.println("c ommon task completed");} System.out.println("rest of the code..."); } } System.out.println("common task complete d");} catch(ArithmeticException e){ System.out.println("task1 is completed");} catch(ArrayIndexOutOfBoundsExceptio n e){System.out.println("task 2 completed" );} System.out.println("rest of the code..."); } } viska@unsyiah.ac.id19
  • 20. Nested Try  Try juga bisa nested (berada di dalam try yang lain) bila diperlukan. class Excep6{ public static void main(String args[]){ try{ try{ System.out.println("going to divide"); int b =39/0; }catch(ArithmeticException e){System.out.println(e);} try{try{ int a[]=new int[5]; a[5]=4; }catch(ArrayIndexOutOfBoundsException e){System.out.println(e);} System.out.println("other statement); }catch(Exception e){System.out.println("handeled");} System.out.println("normal flow.."); } } viska@unsyiah.ac.id20
  • 21. Finally block  Digunakan untuk eksekusi code penting seperti tutup connection, tutup stream.  Akan selalu dieksekusi Akan selalu dieksekusi saat exception dihandle atau tidak dihandle.  Haruslah sesudah block try atau block catch. viska@unsyiah.ac.id21