PEMOGRAMAN BERORIENTASI DASAR
OBJEK
NAMA : triana mantika
NIM : 30814234
KELAS : 4.2 AP
DOSEN : PRITA PALUPININGSIH
UNIVERSITAS : STMIK INDONESIA
JURUSAN : SISTEM INFORMASI (E-COM)
LANGKAH" NYA UNTUK MENJAWAB NO 1 INI
PERTAMA BUKA APLIKASI NETBEANS LALU PILIH FILE-> NEW PROJECT PILIH JAVA -> JAVA APPLICATION
COVER AWAL
BUATLAH CLASS DENGAN MEMBERI NAMA "triana" JIKA INGIN MEMAKAI NAMA SENDIRI PUN TAK APA HEHE
LALU MULAI MENGODING BERIKUT KODINGGANNYA.
1. APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI ?
KODINGAN:
PACKAGE triana;
PUBLIC CLASS MENANGKAPEXCEPTION {
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
SYSTEM.OUT.PRINTLN(3/0);
SYSTEM.OUT.PRINTLN("CETAK.");
}
}
OUT PUT:
KESIMPULAN OUT PUT
JIKA KODE TERSEBUT DIJALANKAN, AKAN DIDAPATKAN PESANKESALAHAN SEBAGAI BERIKUT :
EXCEPTION IN THREAD "MAIN" JAVA.LANG.ARITHMETICEXCEPTION: / BY ZERO AT DIVBYZERO.MAIN(DIVBYZERO.JAVA:3)
PESAN TERSEBUT MENGINFORMASIKAN TIPE EXCEPTION YANG TERJADIPADA BARIS DIMANA EXCEPTION ITU BERASAL. INILAH AKSI DEFAULT YANGTERJADI BILA TERJADI EXCEPTION YANG TIDAK TERTANGANI. JIKA TIDAKTERDAPAT KODE YANG MENANGANI EXCEPTION YANG TERJADI, AKSIDEFAULT AKAN BEKERJA OTOMATIS.
2. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI :
· TIDAK ADA ARGUMENT
· 1
· 0
KODINGAN:
1 PACKAGE triana;
PUBLIC CLASS MULTIPLECATCH {
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
SYSTEM.OUT.PRINTLN(3/0);
SYSTEM.OUT.PRINTLN("CETAK.");
} CATCH (ARITHMETICEXCEPTION E) {
//REAKSI ATAS KEJADIAN
SYSTEM.OUT.PRINTLN(E);}
SYSTEM.OUT.PRINTLN("SETALAH EXCEPTION.");
}
}
HASIL OUT PUT:
KESIMPULAN HASIL OUT PUT
KESALAHAN PEMBAGIAN DENGAN BILANGAN 0 ADALAH SALAH SATU CONTOH DARIARITHMETHICEXCEPTION. TIPE EXCEPTION KEMUDIAN MENGINDIKASIKAN KLAUSACATCH PADA CLASS INI. PEROGRAM TERSEBUT MENANGANI KESALAHAN YANG TERJADI DENGAN MENAMPILKAN DEKSRIPSI DARI PERMASALAHAN.
OUTPUT PROGRAM SAAT EKSEKUSI AKAN TERLIHAT SEBAGAI BERIKUT :
JAVA.LANG.ARITHMETICEXCEPTION: / BY ZERO
AFTER EXCEPTION.
BAGIAN KODE YANG TERDAPAT PADA BLOK TRY DAPAT MENYEBABKAN LEBIH DARISATU TIPE EXCEPTION. DALAM HAL INI, TERJADINYA BERMACAM TIPE KESALAHANDAPAT DITANGANI MENGGUNAKAN BEBERAPA BLOK CATCH. PERLU DICATAT BAHWABLOK TRY DAPAT HANYA MENYEBABKAN SEBUAH EXCEPTION PADA SATU WAKTU,NAMUN DAPAT PULA MENAMPIKAN TIPE EXCEPTION YANG BERBEDA DI LAIN WAKTU.
3. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI:
· TIDAK ADA ARGUMENT
· 12
· 12 4
· 12 0
KODINGAN:
PACKAGE triana;
PUBLIC CLASS NESTEDTRY {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
INT A = INTEGER.PARSEINT (ARGS[0]);
TRY{
INT B = INTEGER.PARSEINT (ARGS[1]);
SYSTEM.OUT.PRINTLN(A/B);
} CATCH (ARITHMETICEXCEPTION E){
SYSTEM.OUT.PRINTLN("DIVIDE BY ZERO ERROR!");
}
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
SYSTEM.OUT.PRINTLN("2 PARAMETER ARE REQUIRED.");
}
}
}
HASIL OUT PUT :
PADA CLASS NESTEDTRY UNTUK MENAMPILKAN HASIL "14 DI BAGI 4" DENGAN CARA KLIK GAMBAR CANGKIR PADA TOOLBAR LALU KLIK KANAN DAN PPROPERTIS . LALU PILIH RUN DAN PADA ARGUMENT TULISKAN 12 4 LALU PILIH OKE. LALU RUN FILE DENGAN CARA KLIK CALSS NESTEDTRY JIKA SUDAH MAKA AKAN MUNCULLAH "3." YANG DI MINTA PADA PROGRAM TERSEBUT.
4. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI:
· TIDAK ADA ARGUMENT
· 12
· 12 4
· 12 0
KODINGAN:
PACKAGE triana;
PUBLIC CLASS NESTEDTRYDENGANMETHOD {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
PUBLIC 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("DIVIDE BY ZERO ERROR!");
}
}
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
NESTEDTRY(ARGS);
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
SYSTEM.OUT.PRINTLN("2 PARAMETER ARE REQUIRED.");
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
PADA CLASS NESTEDTRYDENGANMETHOD UNTUK MENAMPILKAN HASIL "12 DI BAGI 4" DENGAN CARA KLIK GAMBAR CANGKIR PADA TOOLBAR LALU KLIK KANAN DAN PILIH PROPERTIS . LALU PILIH RUN DAN PADA ARGUMENT TULISKAN 12 4 LALU PILIH OKE. LALU RUN FILE DENGAN CARA KLIK CALSS NESTEDTRY JIKA SUDAH MAKA AKAN MUNCULLAH "3" YANG DI MINTA PADA PROGRAM TERSEBUT.
5.APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
/**
*
* @AUTHOR triana
*/
PUBLIC CLASS KEYWORDFINALLY {
PUBLIC STATIC VOID MYMETHOD(INT N) THROWS EXCEPTION{
TRY{
SWITCH(N){
CASE 1: SYSTEM.OUT.PRINTLN("CASE PERTAMA");
RETURN;
CASE 3: SYSTEM.OUT.PRINTLN("CASE KETIGA");
THROW NEW RUNTIMEEXCEPTION("DEMO CASE KETIGA");
CASE 4: SYSTEM.OUT.PRINTLN("CASE KEEMPAT");
THROW NEW EXCEPTION("DEMO CASE KEEMPAT");
CASE 2: SYSTEM.OUT.PRINTLN("CASE KEDUA");
}
} CATCH (RUNTIMEEXCEPTION E){
SYSTEM.OUT.PRINTLN("RUNTIMEEXCEPTION TERJADI:");
SYSTEM.OUT.PRINTLN(E.GETMESSAGE());
} FINALLY {
SYSTEM.OUT.PRINTLN("TRY-BLOCK ENTERED.");
}}
PUBLIC STATIC VOID MAIN (STRING ARGS[]){
FOR (INT I=1; I<=4; I++){
TRY {
KEYWORDFINALLY.MYMETHOD(I);
} CATCH (EXCEPTION E){
SYSTEM.OUT.PRINTLN("EXCEPTION TERJADI:");
SYSTEM.OUT.PRINTLN(E.GETMESSAGE());
}
SYSTEM.OUT.PRINTLN();
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
BLOK FINALLY MENGANDUNG KODE PENANGANAN SETELAH PENGGUNAANTRY DAN CATCH. BLOK KODE INI SELALU TEREKSEKUSI WALAUPUN SEBUAHEXCEPTION TERJADI ATAU TIDAK PADA BLOK TRY. BLOK KODE TERSEBUTJUGA AKAN MENGHASILKAN NILAI TRUE MESKIPUN RETURN, CONTINUEATAUPUN BREAK TEREKSEKUSI. TERDAPAT 4 KEMUNGKINAN SKENARIO YANG BERBEDA DALAM BLOK TRY-CATCH-FINALLY. PERTAMA, PEMAKSAANKELUAR PROGRAM TERJADI BILA CONTROL PROGRAM DIPAKSA UNTUKMELEWATI BLOK TRY MENGGUNAKAN RETURN, CONTINUE ATAUPUN BREAK.KEDUA, SEBUAH PENYELESAIAN NORMAL TERJADI JIKA TRY-CATCH-FINALLYTEREKSEKUSI SECARA NORMAL TANPA TERJADI ERROR APAPUN. KETIGA,KODE PROGRAM MEMILIKI SPESIFIKASI TERSENDIRI DALAM BLOK CATCHTERHADAP EXCEPTION YANG TERJADI. YANG TERAKHIR, KEBALIKAN SKENARIO KETIGA. DALAM HAL INI, EXCEPTION YANG TERJADI TIDAKTERDEFINISIKAN PADA BLOK CATCH MANAPUN. CONTOH DARI SKENARIOTERLIHAT PADA KODE " SWITCH(N) " . KRNA ATURAN : CATCH LEBIH DARISATU HARUS BERURUTAN DARI SUBCLASS KE SUPERCLASS.
6.APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
PUBLIC CLASS MULTIPLECATCHEXCEPTIONERROR {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
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 E){
SYSTEM.OUT.PRINTLN(E);
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2){
SYSTEM.OUT.PRINTLN(E2);
}
SYSTEM.OUT.PRINTLN("AFTER TRY-CATCH-CATCH.");
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
SETELAH MENGKOMPILASI KODE TERSEBUT AKAN MENGHASILKAN PESAN ERRORJIKA EXCEPTION CLASS ADALAH SUPERCLASS DARIARRAYINDEXOUTOFBOUNDSEXCEPTION CLASS.
MULTIPLECATCHERROR.JAVA:9: EXCEPTION JAVA.LANG.ARRAYINDEXOUTOFBOUNDSEXCEPTION HAS ALREADY BEEN CAUGHT } CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
7. APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
CLASS HATESTRINGEXCEPTION EXTENDS RUNTIMEEXCEPTION{
/*TIDAK PERLU MEMASUKAN MEMBER ATAUPUN CONSTRUKTOR*/
}
CLASS TESTHATESTRING {
PUBLIC STATIC VOID MAIN(STRING ARGS[]){
STRING INPUT = "INVALID INPUT";
TRY{
IF (INPUT.EQUALS("INVALID INPUT")){
THROW NEW HATESTRINGEXCEPTION();
}
SYSTEM.OUT.PRINTLN("STRING ACCEPTED.");
} CATCH (HATESTRINGEXCEPTION E){
SYSTEM.OUT.PRINTLN(" I HATE THIS STRING: " + INPUT +".");
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
EXCEPTION CLASSES TERDAPAT PADA PACKAGE VIANA NAMUN TIDAK MENCUKUPIUNTUK MENAMPUNG SELURUH KEMUNGKINAN TIPE EXCEPTION YANG MUNGKINTERJADI. SEHINGGA SANGAT MUNGKIN BAHWA ANDA PERLU UNTUK MEMBUAT TIPEEXCEPTION TERSENDIRI.
DALAM PEMBUATAN TIPE EXCEPTION ANDA SENDIRI, HANYA PERLU UNTUK MEMBUAT SEBUAH EXTENDES CLASS TERHADAP RUNTIMEEXCEPTION CLASS, MAUPUNEXCEPTION CLASS LAIN. SELANJUTNYA TERGANTUNG PADA ANDA DALAM MEMODIFIKASI CLASS SESUAI PERMASALAHAN YANG AKAN DISELESAIKAN.MEMBERS DAN CONSTRUCTORS DAPAT DIMASUKKAN PADA EXCEPTION CLASS SAJA KARNA YANG INGIN DI PANGGIL HANYA (" I HATE THIS STRING" AND "INVALID INPUT")`
TRIMAKASIH SEMOGA BERMANFAAT :)
}
COVER AWAL
BUATLAH CLASS DENGAN MEMBERI NAMA "triana" JIKA INGIN MEMAKAI NAMA SENDIRI PUN TAK APA HEHE
LALU MULAI MENGODING BERIKUT KODINGGANNYA.
LALU MULAI MENGODING BERIKUT KODINGGANNYA.
1. APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI ?
KODINGAN:
PACKAGE triana;
PUBLIC CLASS MENANGKAPEXCEPTION {
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
SYSTEM.OUT.PRINTLN(3/0);
SYSTEM.OUT.PRINTLN("CETAK.");
}
}
OUT PUT:
KESIMPULAN OUT PUT
JIKA KODE TERSEBUT DIJALANKAN, AKAN DIDAPATKAN PESANKESALAHAN SEBAGAI BERIKUT :
EXCEPTION IN THREAD "MAIN" JAVA.LANG.ARITHMETICEXCEPTION: / BY ZERO AT DIVBYZERO.MAIN(DIVBYZERO.JAVA:3)
2. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI :
· TIDAK ADA ARGUMENT
· 1
· 0
KODINGAN:
1 PACKAGE triana;
PUBLIC CLASS MULTIPLECATCH {
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
SYSTEM.OUT.PRINTLN(3/0);
SYSTEM.OUT.PRINTLN("CETAK.");
} CATCH (ARITHMETICEXCEPTION E) {
//REAKSI ATAS KEJADIAN
SYSTEM.OUT.PRINTLN(E);}
SYSTEM.OUT.PRINTLN("SETALAH EXCEPTION.");
}
}
HASIL OUT PUT:
KESIMPULAN HASIL OUT PUT
KESALAHAN PEMBAGIAN DENGAN BILANGAN 0 ADALAH SALAH SATU CONTOH DARIARITHMETHICEXCEPTION. TIPE EXCEPTION KEMUDIAN MENGINDIKASIKAN KLAUSACATCH PADA CLASS INI. PEROGRAM TERSEBUT MENANGANI KESALAHAN YANG TERJADI DENGAN MENAMPILKAN DEKSRIPSI DARI PERMASALAHAN.
OUTPUT PROGRAM SAAT EKSEKUSI AKAN TERLIHAT SEBAGAI BERIKUT :
JAVA.LANG.ARITHMETICEXCEPTION: / BY ZERO
AFTER EXCEPTION.
BAGIAN KODE YANG TERDAPAT PADA BLOK TRY DAPAT MENYEBABKAN LEBIH DARISATU TIPE EXCEPTION. DALAM HAL INI, TERJADINYA BERMACAM TIPE KESALAHANDAPAT DITANGANI MENGGUNAKAN BEBERAPA BLOK CATCH. PERLU DICATAT BAHWABLOK TRY DAPAT HANYA MENYEBABKAN SEBUAH EXCEPTION PADA SATU WAKTU,NAMUN DAPAT PULA MENAMPIKAN TIPE EXCEPTION YANG BERBEDA DI LAIN WAKTU.
3. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI:
· TIDAK ADA ARGUMENT
· 12
· 12 4
· 12 0
KODINGAN:
PACKAGE triana;
PUBLIC CLASS NESTEDTRY {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
INT A = INTEGER.PARSEINT (ARGS[0]);
TRY{
INT B = INTEGER.PARSEINT (ARGS[1]);
SYSTEM.OUT.PRINTLN(A/B);
} CATCH (ARITHMETICEXCEPTION E){
SYSTEM.OUT.PRINTLN("DIVIDE BY ZERO ERROR!");
}
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
SYSTEM.OUT.PRINTLN("2 PARAMETER ARE REQUIRED.");
}
}
}
HASIL OUT PUT :
PADA CLASS NESTEDTRY UNTUK MENAMPILKAN HASIL "14 DI BAGI 4" DENGAN CARA KLIK GAMBAR CANGKIR PADA TOOLBAR LALU KLIK KANAN DAN PPROPERTIS . LALU PILIH RUN DAN PADA ARGUMENT TULISKAN 12 4 LALU PILIH OKE. LALU RUN FILE DENGAN CARA KLIK CALSS NESTEDTRY JIKA SUDAH MAKA AKAN MUNCULLAH "3." YANG DI MINTA PADA PROGRAM TERSEBUT.
4. APA OUTPUT DARI KODE PROGRAM TERSEBUT, JIKA DIBERIKAN ARGUMENT JIKA KODINGAN SEPERTI DI BAWAH INI:
· TIDAK ADA ARGUMENT
· 12
· 12 4
· 12 0
PACKAGE triana;
PUBLIC CLASS NESTEDTRYDENGANMETHOD {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
PUBLIC 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("DIVIDE BY ZERO ERROR!");
}
}
PUBLIC STATIC VOID MAIN(STRING[] ARGS) {
TRY {
NESTEDTRY(ARGS);
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
SYSTEM.OUT.PRINTLN("2 PARAMETER ARE REQUIRED.");
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
PADA CLASS NESTEDTRYDENGANMETHOD UNTUK MENAMPILKAN HASIL "12 DI BAGI 4" DENGAN CARA KLIK GAMBAR CANGKIR PADA TOOLBAR LALU KLIK KANAN DAN PILIH PROPERTIS . LALU PILIH RUN DAN PADA ARGUMENT TULISKAN 12 4 LALU PILIH OKE. LALU RUN FILE DENGAN CARA KLIK CALSS NESTEDTRY JIKA SUDAH MAKA AKAN MUNCULLAH "3" YANG DI MINTA PADA PROGRAM TERSEBUT.
5.APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
/**
*
* @AUTHOR triana
*/
PUBLIC CLASS KEYWORDFINALLY {
PUBLIC STATIC VOID MYMETHOD(INT N) THROWS EXCEPTION{
TRY{
SWITCH(N){
CASE 1: SYSTEM.OUT.PRINTLN("CASE PERTAMA");
RETURN;
CASE 3: SYSTEM.OUT.PRINTLN("CASE KETIGA");
THROW NEW RUNTIMEEXCEPTION("DEMO CASE KETIGA");
CASE 4: SYSTEM.OUT.PRINTLN("CASE KEEMPAT");
THROW NEW EXCEPTION("DEMO CASE KEEMPAT");
CASE 2: SYSTEM.OUT.PRINTLN("CASE KEDUA");
}
} CATCH (RUNTIMEEXCEPTION E){
SYSTEM.OUT.PRINTLN("RUNTIMEEXCEPTION TERJADI:");
SYSTEM.OUT.PRINTLN(E.GETMESSAGE());
} FINALLY {
SYSTEM.OUT.PRINTLN("TRY-BLOCK ENTERED.");
}}
PUBLIC STATIC VOID MAIN (STRING ARGS[]){
FOR (INT I=1; I<=4; I++){
TRY {
KEYWORDFINALLY.MYMETHOD(I);
} CATCH (EXCEPTION E){
SYSTEM.OUT.PRINTLN("EXCEPTION TERJADI:");
SYSTEM.OUT.PRINTLN(E.GETMESSAGE());
}
SYSTEM.OUT.PRINTLN();
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
BLOK FINALLY MENGANDUNG KODE PENANGANAN SETELAH PENGGUNAANTRY DAN CATCH. BLOK KODE INI SELALU TEREKSEKUSI WALAUPUN SEBUAHEXCEPTION TERJADI ATAU TIDAK PADA BLOK TRY. BLOK KODE TERSEBUTJUGA AKAN MENGHASILKAN NILAI TRUE MESKIPUN RETURN, CONTINUEATAUPUN BREAK TEREKSEKUSI. TERDAPAT 4 KEMUNGKINAN SKENARIO YANG BERBEDA DALAM BLOK TRY-CATCH-FINALLY. PERTAMA, PEMAKSAANKELUAR PROGRAM TERJADI BILA CONTROL PROGRAM DIPAKSA UNTUKMELEWATI BLOK TRY MENGGUNAKAN RETURN, CONTINUE ATAUPUN BREAK.KEDUA, SEBUAH PENYELESAIAN NORMAL TERJADI JIKA TRY-CATCH-FINALLYTEREKSEKUSI SECARA NORMAL TANPA TERJADI ERROR APAPUN. KETIGA,KODE PROGRAM MEMILIKI SPESIFIKASI TERSENDIRI DALAM BLOK CATCHTERHADAP EXCEPTION YANG TERJADI. YANG TERAKHIR, KEBALIKAN SKENARIO KETIGA. DALAM HAL INI, EXCEPTION YANG TERJADI TIDAKTERDEFINISIKAN PADA BLOK CATCH MANAPUN. CONTOH DARI SKENARIOTERLIHAT PADA KODE " SWITCH(N) " . KRNA ATURAN : CATCH LEBIH DARISATU HARUS BERURUTAN DARI SUBCLASS KE SUPERCLASS.
6.APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
PUBLIC CLASS MULTIPLECATCHEXCEPTIONERROR {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
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 E){
SYSTEM.OUT.PRINTLN(E);
} CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2){
SYSTEM.OUT.PRINTLN(E2);
}
SYSTEM.OUT.PRINTLN("AFTER TRY-CATCH-CATCH.");
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
SETELAH MENGKOMPILASI KODE TERSEBUT AKAN MENGHASILKAN PESAN ERRORJIKA EXCEPTION CLASS ADALAH SUPERCLASS DARIARRAYINDEXOUTOFBOUNDSEXCEPTION CLASS.
MULTIPLECATCHERROR.JAVA:9: EXCEPTION JAVA.LANG.ARRAYINDEXOUTOFBOUNDSEXCEPTION HAS ALREADY BEEN CAUGHT } CATCH (ARRAYINDEXOUTOFBOUNDSEXCEPTION E2) {
7. APA OUTPUT DARI KODE PROGRAM TERSEBUT JIKA KODINGAN SEPERTI DI BAWAH INI?
KODINGAN:
PACKAGE triana;
CLASS HATESTRINGEXCEPTION EXTENDS RUNTIMEEXCEPTION{
/*TIDAK PERLU MEMASUKAN MEMBER ATAUPUN CONSTRUKTOR*/
}
CLASS TESTHATESTRING {
PUBLIC STATIC VOID MAIN(STRING ARGS[]){
STRING INPUT = "INVALID INPUT";
TRY{
IF (INPUT.EQUALS("INVALID INPUT")){
THROW NEW HATESTRINGEXCEPTION();
}
SYSTEM.OUT.PRINTLN("STRING ACCEPTED.");
} CATCH (HATESTRINGEXCEPTION E){
SYSTEM.OUT.PRINTLN(" I HATE THIS STRING: " + INPUT +".");
}
}
}
HASIL OUT PUT :
KESIMPULAN HASIL OUT PUT
EXCEPTION CLASSES TERDAPAT PADA PACKAGE VIANA NAMUN TIDAK MENCUKUPIUNTUK MENAMPUNG SELURUH KEMUNGKINAN TIPE EXCEPTION YANG MUNGKINTERJADI. SEHINGGA SANGAT MUNGKIN BAHWA ANDA PERLU UNTUK MEMBUAT TIPEEXCEPTION TERSENDIRI.
DALAM PEMBUATAN TIPE EXCEPTION ANDA SENDIRI, HANYA PERLU UNTUK MEMBUAT SEBUAH EXTENDES CLASS TERHADAP RUNTIMEEXCEPTION CLASS, MAUPUNEXCEPTION CLASS LAIN. SELANJUTNYA TERGANTUNG PADA ANDA DALAM MEMODIFIKASI CLASS SESUAI PERMASALAHAN YANG AKAN DISELESAIKAN.MEMBERS DAN CONSTRUCTORS DAPAT DIMASUKKAN PADA EXCEPTION CLASS SAJA KARNA YANG INGIN DI PANGGIL HANYA (" I HATE THIS STRING" AND "INVALID INPUT")`
TRIMAKASIH SEMOGA BERMANFAAT :)
}
Tidak ada komentar:
Posting Komentar