TIB09 Pemrograman JAVA – 07 – Exception

Download Report

Transcript TIB09 Pemrograman JAVA – 07 – Exception

Pemrograman JAVA

(TIB09)

Exception

Disusun oleh Teady Matius ( [email protected]

, [email protected]

)

Exception

• Exception adalah peristiwa yang terjadi pada eksekusi program ketika suatu gangguan terjadi dalam suatu aliran instruksi yang normal

Bagaimana eksepsi bisa terjadi?

• • • checked exception.  aplikasi tertulis dengan baik, tetapi ada eksepsi yang harus diantisipasi error.  eksepsi karena faktor external yang tidak dapat diantisipasi runtime exception. Eksepsi karena faktor internal aplikasi yang tidak dapat diantisipasi

Bagaimana itu bisa terjadi?

• • • Kesalahan Coding Kesalahan input pemakai Kesalahan peralatan

Penanganan eksepsi

• Kondisi: – Pemakai tidak tahu menahu mengenai bagaimana suatu kesalahan terjadi. Tetapi satu hal yang pasti ketika pemakai mengalami kejadian yang menimbulkan kesalahan yang tidak tertangani, pemakai akan kapok dan berusaha menghindari pemakaian.

• • • Jadi penanganan yang dapat dilakukan: Memberitahu kesalahan kepada pemakai Menyimpan semua pekerjaan Mengijinkan Pemakai keluar dari program atau situasi yang diakibatkan kesalahan tersebut dan menlanjutkan proses berikutnya.

Kategori Exception

Format Exception

try { … //blok program … } catch ( tipeEksepsi penampungEksepsi ) { … //blok program … }

Multiple Exception

try { //blok program } catch (tipeEksepsi penampungEksepsi1) { //blok program } catch (tipeEksepsi penampungEksepsi2) { //blok program } catch (tipeEksepsi penampungEksepsi3) { //blok program }

Exception dengan finally

try { … //blok program … } catch (tipeEksepsi penampungEksepsi) { … //blok program … } finally { … //blok program … }

Throw Exception

• • Exception dapat dilempar ke variable, method ataupun class lain yang mempergunakan class ataupun method tersebut dengan mempergunakan keyword throws Class ataupun method yang mempergunakan class ataupun method dengan throws exception harus menyediakan blok try-catch-finally untuk memproses Exception tersebut. Atau dapat juga melemparkan lagi Exception tersebut.

Melempar eksepsi ke variabel

… TipeEksepsi penampungEksepsi; penampungEksepsi = new TipeEksepsi(“pesan”); throw penampungEksepsi; …

Melempar Eksepsi pada Method

Public int namaMethod() throws Exception { … }

Melempar Eksepsi pada Class

Class NamaClass throws Exception { … }

Informasi eksepsi

• Objek-objek yang ditangkap exception memiliki informasi-informasi eksepsi • • Misalkan e adalah objek penampung eksepsi e.getMessage() kesalahan.

 mendapatkan pesan e.getClass().getName()  sebenarnya dari objek mendapatkan tipe

Informasi eksepsi

(penjelasan method yang dipergunakan) • • getClass() adalah method yang diturunkan dari class Object yang akan menghasilkan nama class yang sedang berjalan dari suatu objek Catatan: getClass() adalah final method sehingga tidak dapat di override.

getName() adalah method yang terdapat pada class Class yang akan menghasilkan nama class.

Class Throwable

• Direct Known Subclasses: – Error, Exception

Class Error

• Direct Known Subclasses: – AnnotationFormatError, AssertionError,

AWTError

, CoderMalfunctionError, FactoryConfigurationError, LinkageError, ThreadDeath, TransformerFactoryConfigurationError,

VirtualMachineError

Class Exception

• Direct Known Subclasses: – AclNotFoundException, ActivationException, AlreadyBoundException, ApplicationException, AWTException, BackingStoreException, BadAttributeValueExpException, BadBinaryOpValueExpException, BadLocationException, BadStringOperationException, BrokenBarrierException, CertificateException, ClassNotFoundException, CloneNotSupportedException, DataFormatException, DatatypeConfigurationException, DestroyFailedException, ExecutionException, ExpandVetoException, FontFormatException, GeneralSecurityException, GSSException, IllegalAccessException, IllegalClassFormatException, InstantiationException, InterruptedException, IntrospectionException, InvalidApplicationException, InvalidMidiDataException, InvalidPreferencesFormatException, InvalidTargetObjectTypeException, InvocationTargetException, IOException , JMException, LastOwnerException, LineUnavailableException, MidiUnavailableException, MimeTypeParseException, NamingException, NoninvertibleTransformException, NoSuchFieldException, NoSuchMethodException, NotBoundException, NotOwnerException, ParseException, ParserConfigurationException, PrinterException, PrintException, PrivilegedActionException, PropertyVetoException, RefreshFailedException, RemarshalException, RuntimeException , SAXException, ServerNotActiveException, SQLException, TimeoutException, TooManyListenersException, TransformerException, UnmodifiableClassException, UnsupportedAudioFileException, UnsupportedCallbackException, UnsupportedFlavorException, UnsupportedLookAndFeelException, URISyntaxException, UserException, XAException, XMLParseException, XPathException

Membuat Class Exception

• • • Jika tidak dapat dipecahkan oleh eksepsi standart, kita dapat membuat sendiri class exception yang diperlukan.

Turunkan dari class-class eksepsi yang tersedia Buat setidaknya sebuah konstruktor yang berisi parameter bertipe string untuk menampilkan pesan error, dimana pesan error tersebut dapat kita ambil dari class induknya.

Contoh Membuat Class Eksepsi

Class ContohEksepsi extends IOException { public ContohEksepsi(String pesan) { super(pesan) } }