Exception dan Assertion

Slides:



Advertisements
Presentasi serupa
EXCEPTION HANDLING.
Advertisements

Java Fundamentals: 5. Java Advanced
Try, Catch, Finally Throws
Abstract Class & Interface
Workshop SCS: Java Game Programming
PEMROGRAMAN KOMPUTER 2 4 SKS 2 TEORI DAN 2 PRAKTEK NANDANG HERMANTO. S.Kom.
Dasar Exception Handling
Flow Control & Exception Handling
Pemrograman Berorientasi Objek
Flow Control & Exception Handling
Pemrograman Berbasis Obyek Oleh Tita Karlita
Pemrograman Berorientasi Objek
Dasar exception handling
Pemrograman Berorientasi Objek 1
EXCEPTION TRY-CATCH-FINALLY
Struktur Kontrol Pemilihan
Exceptional Pendahuluan Bugs dan error dalam sebuah program sangat sering muncul meskipun program tersebut dibuat oleh programmer berkemampuan tinggi.
Pertemuan 12 Pemrograman Berbasis Obyek Oleh Tita Karlita
Do you remember this?.  Strategy  Concrete Strategy  Context  Client Strategy Pattern consists of..
- PERTEMUAN 4- EXCEPTION
Struktur kontrol.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Dasar exception handling
Try, Catch, Finally Throws
Pemrograman berbasis obyek
Algoritma & Pemrograman 1
Penanganan Eksepsi.
Command line argument.
Exception Handling (Penanganan Error)
PEMROGRAMAN VISUAL II Agenda Perkuliahan :
Struktur Kontrol Struktur kontrol if Struktur kontrol if-else
Penanganan Eksepsi Disusun Oleh: Reza Budiawan Untuk:
Pengantar Struktur Data Pertemuan 1 Season 1
Teori Pertemuan 9 “Exception”
Inner Class dan Eksepsi (Exception)
Access Modifier.
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Konsep Dasar Exception Handling
Pemprograman Berorientasi Objek
STRUKTUR KONTROL.
Struktur Kontrol Pemilihan
Penanganan Eksepsi Pertemuan Ke- 9.
INPUT DATA, PERCABANGAN & PERULANGAN DENGAN JAVA
PERCABANGAN & PERULANGAN DALAM JAVA
BAB XI EXCEPTION HANDLING.
Dosen : Bella Hardiyana, S. Kom
Command line argument.
Percabangan dan Perulangan.
OPERASI FILE & EXCEPTION HANDLING
Tipe Data, Variabel, dan Operator
JAVA Mudah dipelajari jika telah mengenal konsep OOP, terbuka (open source) dan mudah dikembangkan SEDERHANA KEUNGGULAN JAVA AMAN Dibuat dengan pertimbangan.
Algoritma & Pemrograman 3
Exception Handling (Penanganan Error)
Pemrograman Berorientasi Objek
Tipe Data, Variabel, dan Operator
JAVA FUNDAMENTAL.
ASWAR R. Universitas Negeri Makassar
Pemrograman Berorientasi Objek 1
Dasar Bahasa Java.
Flow Control & Exception Handling
Exception Sussi.
Pemrograman Berorientasi Object
Pemrograman Berorientasi Obyek
Dasar exception handling
Pemrograman Berorientasi Object
Penanganan Exception di Java
Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator
Tipe Data, Variabel, dan Operator
DPH1C4 Pemrograman berorientasi Obyek
FONDASI PEMROGRAMAN & STRUKTUR DATA #3 - 4
Transcript presentasi:

Exception dan Assertion

Topik Apa yang dimaksud dengan Exception? Menangkap Exception Pendahuluan Class-class Error dan Exception Contoh Menangkap Exception Pernyataan try-catch Kata kunci finally

Topik Melempar Exception Kategori Exception Kata kunci throw Kata kunci throws Kategori Exception Class-class dan hirarki Exception Checked dan Unchecked Exception User-Defined Exception

Topik Apa yang dimaksud dengan Assertion? Mengaktifkan dan Menonaktifkan Assertion Sintaks Assertion

EXCEPTION Error pembagian 0 Definisi: Event-event Exceptional Error-error yang mungkin muncul selama runtime Menyebabkan program yang berjalan secara normal menjadi terganggu. Contoh -contoh : Error pembagian 0 Mengakses elemen di luar jangkauan sebuah array Input yang sifatnya invalid Hard disk crash Membuka file yang tidak ada Menyelesaikan masalah tumpukan memori.

Class Error dan Exception Class Throwable Class Root dari class-class exception Subclass-subclass Immediate Error Exception Class Exception menunjukkan kondisi yang dapat diterima oleh user program Umumnya disebabkan oleh beberapa kesalahan pada kode program Contoh-contoh Pembagian oleh 0 Error di luar jangkauan array

Class Error dan Exception digunakan oleh Java run-time untuk menangani error yang muncul pada saat dijalankan Secara umum hal ini di luar control user karena kemunculannya disebabkan oleh run-time environment Contoh-contoh Out of memory errors Harddisk crash

Contoh Exception class DivByZero { public static void main(String args[]) { System.out.println(3/0); System.out.println(“Pls. print me.”); }

Contoh Exception Menampilkan deskripsi exception didapatkan pesan kesalahan sebagai berikut Exception in thread "main" java.lang.ArithmeticException: / by zero at DivByZero.main(DivByZero.java:3) Default handler Menampilkan deskripsi exception Menampilkan stack trace Hirarki method dimana exception terjadi Menghentikan program secara paksa

Exceptions Catch: try-catch Sintaks: try { <code to be monitored for exceptions> } catch (<ExceptionType1> <ObjName>) { <handler if ExceptionType1 occurs> } ... } catch (<ExceptionTypeN> <ObjName>) { <handler if ExceptionTypeN occurs>

Exceptions Catch: try-catch class DivByZero { public static void main(String args[]) { try { System.out.println(3/0); System.out.println(“Please print me.”); } catch (ArithmeticException exc) { //Dibagi dengan 0 -> ArithmeticException System.out.println(exc); } System.out.println(“After exception.”);

Exceptions Catch: try-catch Contoh Multiple catch class MultipleCatch { public static void main(String args[]) { try { int den = Integer.parseInt(args[0]); System.out.println(3/den); } catch (ArithmeticException exc) { System.out.println(“Divisor was 0.”); } catch (ArrayIndexOutOfBoundsException exc2) { System.out.println(“Missing argument.”); } System.out.println(“After exception.”);

Exceptions Catch: try-catch Nested try class NestedTryDemo { public static void main(String args[]){ try { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); System.out.println(a/b); } catch (ArithmeticException e) { System.out.println(“Div by zero error!"); } //bersambung...

Exceptions Catch: try-catch } catch (ArrayIndexOutOfBoundsException) { System.out.println(“Need 2 parameters!"); }

Exceptions Catch: try-catch Nested trys dengan method-method class NestedTryDemo2 { static void nestedTry(String args[]) { try { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); System.out.println(a/b); } catch (ArithmeticException e) { System.out.println("Div by zero error!"); } //bersambung...

Exceptions Catch: try-catch public static void main(String args[]){ try { nestedTry(args); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Need 2 parameters!"); }

Exceptions Catch: Keyword finally Sintaks: try { <code to be monitored for exceptions> } catch (<ExceptionType1> <ObjName>) { <handler if ExceptionType1 occurs> } ... } finally { <code to be executed before the try block ends> } Mengandung kode penanganan setelah penggunaan try dan catch

Exceptions Catch: Keyword finally Kode selalu dieksekusi meskipun dengan skenario berbeda : Proses keluar secara paksa menggunakan return, pernyataan continue atau break. Penyelesaian secara normal Menangkap lemparan exception Exception akan dilempar dan ditangkap dalam sebuah method Tidak menangkap lemparan exception Lemparan Exception belum dispesifikasikan dalam beberapa baris catch dalam method tersebut

Exceptions Catch: Keyword finally class FinallyDemo { static void myMethod(int n) throws Exception{ try { switch(n) { case 1: System.out.println("1st case"); return; case 3: System.out.println("3rd case"); throw new RuntimeException("3!"); case 4: System.out.println("4th case"); throw new Exception("4!"); case 2: System.out.println("2nd case"); } //bersambung...

Exceptions Catch: Keyword finally } catch (RuntimeException e) { System.out.print("RuntimeException: "); System.out.println(e.getMessage()); } finally { System.out.println("try-block entered."); } //bersambung...

Exceptions Catch: Keyword finally public static void main(String args[]){ for (int i=1; i<=4; i++) { try { FinallyDemo.myMethod(i); } catch (Exception e){ System.out.print("Exception caught: "); System.out.println(e.getMessage()); } System.out.println();

Exceptions Throwing : Keyword throw Java mengijinkan Anda untuk melempar exception: throw <exception object>; Contoh: throw new ArithmeticException(“testing...”);

Exceptions Throwing: Keyword throw class ThrowDemo { public static void main(String args[]){ String input = “invalid input”; try { if (input.equals(“invalid input”)) { throw new RuntimeException("throw demo"); } else { System.out.println(input); } System.out.println("After throwing"); } catch (RuntimeException e) { System.out.println("Exception caught:+e);

Exceptions Throwing : Keyword throw Sebuah method diperlukan untuk menangkap ataupun mendaftar seluruh exceptions yang mungkin terjadi Kecuali untuk Error atau RuntimeException, atau subclass-subclass nya Jika sebuah method dapat menyebabkan sebuah exception namun tidak menangkapnya, maka digunakan keyword throws Aturan ini hanya berlaku pada checked exception Sintaks: <type> <methodName> (<parameterList>) throws <exceptionList> { <methodBody> }

Exceptions Throwing: Keyword throw class ThrowingClass { static void meth() throws ClassNotFoundException { throw new ClassNotFoundException ("demo"); } class ThrowsDemo { public static void main(String args[]) { try { ThrowingClass.meth(); } catch (ClassNotFoundException e) { System.out.println(e);

Class-class Exception dan Hirarki

Class-class Exception dan Hirarki catch lebih dari satu harus berurutan dari subclass ke superclass. class MultipleCatchError { public static void main(String args[]){ try { int a = Integer.parseInt(args [0]); int b = Integer.parseInt(args [1]); System.out.println(a/b); } catch (Exception ex) { } catch (ArrayIndexOutOfBoundsException e) { }

Checked dan Unchecked Exceptions Compiler memeriksa keseluruhan program apakah menangkap atau mendaftar exception yang terjadi dalam sintax throws Jika tidak, error compiler akan terjadi Unchecked Exception Tidak berupa compile-time checking dalam penanganan exceptions Class-class exception Built-in unchecked Error RuntimeException Subclass-subclassnya Mengatasi semua exception-exception ini mungkin membuat program kacau dan mungkin menyusahkan programmer.

User-Defined Exceptions Membuat exceptions Anda sendiri Membuat sebuah class yang extends terhadap RuntimeException atau class Exception Modifikasi class Members dan constructors dapat ditambahkan pada class Contoh: class HateStringExp extends RuntimeException { /* Tidak ada penambahan anggota atau construktor sedikitpun */ }

User-Defined Exceptions Menggunakan user-defined exceptions class TestHateString { public static void main(String args[]) { String input = "invalid input"; try { if (input.equals("invalid input")){ throw new HateStringExp(); } System.out.println("Accept string."); } catch (HateStringExp e) { System.out.println("Hate string!”);

ASSERTIONS Memungkinkan programmer untuk menemukan sebuah asumsi terhadap suatu masalah Contoh : bulan Extension dari comments dimana pernyataan yang menyatakan informasi kepada pembaca kode dalam keadaan yang bermacam-macam seharusnya merasa puas Jalannya program menginformasikan kepada Anda apakah Assertion yang dibuat sudah benar atau belum Jika sebuah assertion tidak benar, sebuah AssertionError akan diberikan User memiliki pilihan untuk menghidupkan atau mematikannya pada saat runtime

Mengaktifkan dan MenonAktifkan Assertions Program dengan assertions mungkin tidak bekerja dengan baik jika digunakan oleh clients tidak memanfaatkan assertions yang telah digunakan dalam kode. Proses Kompilasi Dengan fitur assertion: javac –source 1.4 MyProgram.java Tanpa fitur assertion: javac MyProgram.java Mengaktifkan assertions: Menggunakan –enableassertions atau –ea switch. java –enableassertions MyProgram

Sintaks Assertion assert <expression1>; dimana Dua bentuk: Bentuk yang lebih sederhana: assert <expression1>; dimana <expression1> adalah kondisi assertion bernilai true Bentuk Lain: assert <expression1> : <expression2>; <expression1> adalah kondisi yang bernilai true <expression2> adalah informasi yang membantu pemeriksaan mengapa program mengalami kesalahan

Sintaks Assertion class AgeAssert { public static void main(String args[]) { int age = Integer.parseInt(args[0]); assert(age>0); /* jika usia sifatnya valid (contoh, age>0) */ if (age >= 18) { System.out.println(“You're adult”); }

Kesimpulan Exception Definisi try, catch dan finally throw dan throws Class-class Throwable, Exception, Error Exception-exception Checked dan Unchecked User-Defined Exceptions Assertion Mengaktifkan dan menonaktifkan Assertions Sintaks Assertion