LAPORAN PRAKTIKUM
MODUL VI
EXCEPTION HANDLING
Disusun Oleh:
Umi Farida
/ 150533605050
Wenda Aditama
/ 150533604429
Program Studi:
S1 Pendidikan Teknik Informatika Offering D
JURUSAN TEKNIK ELEKTRO
UNIVERSITAS NEGERI MALANG
2016
BAB I
PENDAHULUAN
A. TUJUAN
1. Mahasiswa mengetahui penanganan kesalahan program dengan exception
2.
3.
4.
5.
handling.
Mahasiswa mampu menerapkan exception handling.
Mahasiswa mampu membedakan penerapan jenis exception handling.
Mahasiswa mampu membuat class exception sendiri.
Mahasiswa mampu melakukan input data melalui keyboard.
B. DASAR TEORI
Exception
Definisi Exception
Suatu mekanisme penanganan kesalahan. Event yang terjadi ketika program menemui
kesalahan saat instruksi program dijalankan. Exception sering digunakan dalam akses
sumberdaya non memori. Catatan : Exception = untuk menangani kesalahan ringan
(mild error). Error = mengindikasikan bahwa error yang terjadi adalah fatal error
(severe problem) dimana proses recovery sangat sulit dilakukan bahkan tidak
mungkin dilakukan.
Contoh Exception
class DivByZero {
public static void main(String args[]) {
[Link](3/0);
[Link](Pls print me);
}
}
--------------------------------------------------------------Menampilkan pesan error
Exception in thread main [Link]: / by
zero at [Link]([Link])
---------------------------------------------------------------
Apa yang terjadi jika terjadi kesalahan?
Secara otomatis akan dilempar sebuah objek yang disebut dengan exception.
Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani
kesalahan. Proses pelemparan exception disebut dengan throwing exception. Proses
penerimaan exception disebut dengan catch exception.
Melempar Exception Throw
Java memperbolehkan untuk melempar exception (generate exception).
throw <exception object>;
Exception yang dilempar adalah sebuah object exception (object exception yang
sudah disediakan oleh java atau yang di-create sendiri).
throw new ArithmeticException(testing..);
Exception Propagation
Exception dapat ditangani pada tingkat yang lebih tinggi jika di tempat terjadinya
exception tidak ditangani secara tepat. Exception merambat naik (propagate up)
melalui method hierarki sampai exception ditangkap atau sampai mencapai level
method main.
Contoh Exception Propagation :
void method1 throws IOException {
throw new IOException(Error in method1);
}
void method2 throws IOException {
// do stuff, but no catch, just specify method1();
}
void method3 throws IOException {
// do stuff, but no catch, just specify method2();
}
public static void main (String args[]) {
// catch if just specitfy error to console
try {
method3();
} catch (IOException e) {
// handle ethe exception from method1
}
}
Object Exception
Object exception yang dihasilkan dapat dimanfaatkan untuk mengetahui dapat
dimanfaatkan untuk mengetahui lebih lanjut mengenai error atau exception yang
terjadi. Exception merupakan subclass dari class throwable.
Method yang diwarisi oleh exception
getMesaage()
Method ini mengembalikan isi pesan untuk menggambarkan exception yang
terjadi.
printStackTrace()
Method ini menampilkan pesan error dan stack trace ke standard error output
stream yang biasanya merupakan konsol window apabila program merupakan
program konsol.
printStackTrace(PrintStream s)
Method ini mengembalikan pesan error ke objek PrintStream yang dijadikan
parameter. Apabila ingin menampilkan pesan ke konsol, anda dapat menggunakan
[Link] sebagai parameter.
Overriding Method dan Exception
Overriding method hanya boleh melempar exception yang merupakan subclass dari
exception yang dilempar oleh overriden method atau sama. Overriding method boleh
mendeklarasikan exception lebih sedikit dari jumlah exception kepunyaan overriden
method.
Catatan : Overriding method = method yang mengoverride
Overriden method = method yang dioverride.
BAB II
HASIL
1) Hasil Kelompok
a. Latihan 1
Tabel 1.0 Script [Link] pada latihan 1
[Link]
class DivByZero{
public static void main(String[] args) {
[Link](5/0);
[Link]("ini adalah keluaran program");
}
}
b. Latihan 2
Tabel 1.1 Script [Link] pada latihan 2
[Link]
class DivByZeroWithException{
public static void main(String[] args) {
try {
[Link](5/0);
[Link]("Keluaran program");
}
catch (ArithmeticException exc) {
[Link]("Exception ditangkap : " + exc);
}
[Link]("Setelah exception...");
}
}
c. Latihan 3
Tabel 1.2 Script [Link] pada latihan 3
[Link]
class multiplecatch{
public static void main(String[] args) {
try{
int a = 3/0;
int num = [Link](args[0]);
[Link]("Perintah selanjutnya....");
}
catch(ArrayIndexOutOfBoundsException e){
}
catch(NullPointerException e){
}
catch(Exception e){
}
}
}
Tabel 1.3 Script [Link] pada latihan 3
[Link]
public class multiplecatch2
{
public static void main(String[] args)
{
try
{
int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu
pembagian
//dengan bilangan 0
int num = [Link](args[0]);
[Link]("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
}
catch(NullPointerException e){
}
catch(Exception e){
[Link]("Kota Kelahiran Umi adalah Kota Malang");
[Link]("Kota Kelahiran Wenda adalah Kota Kediri");
}
}
}
Tabel 1.4 Script [Link] pada latihan 3
[Link]
public class multiplecatch2
{
public static void main(String[] args)
{
try
{
//int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu
pembagian
//dengan bilangan 0
int num = [Link](args[0]);
[Link]("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
[Link](e);
}
catch(NullPointerException e){
}
catch(Exception e){
[Link]("Kota Kelahiran Umi adalah Kota Malang");
[Link]("Kota Kelahiran Wenda adalah Kota Kediri");
}
}
}
Tabel 1.5 Script [Link] pada latihan 3
[Link]
public class multiplecatch3
{
public static void main(String[] args)
{
try
{
//int a = 3/0; //berpotensi untuk menimbulkan kesalahan yaitu
pembagian
//dengan bilangan 0
int num = [Link](args[0]);
[Link]("Perintah selanjutnya...");
}
catch(ArrayIndexOutOfBoundsException e){
[Link](e);
}
catch(NullPointerException e){
}
catch(Exception e){
}
}
}
d. Latihan 4 Try catch finally
Tabel 1.6 Script [Link] pada latihan 4
[Link]
public class TCF{
public TCF(){
}
public static void main(String[] args) {
int nol = 0;
int angka = 10;
try {
int hasil = angka / nol;
[Link]("Hasil = " + hasil);
}
catch (ArithmeticException e) {
[Link]("Terjadi pembagian dengan nol .Exception
ditangkap");
}
finally{
[Link]("Kalimat di blok finally");
}
[Link]("Kalimat di luar blok try-catch-finally");
}
}
e. Latihan 5 Keyword throw
Tabel 1.7 Script [Link] pada latihan 5.1
[Link]
class ThrowDemo{
public static void main(String[] args) {
String input = "Invalid input";
try{
if ([Link]("Invalid input")){
throw new RuntimeException("throw demo");
} else {
[Link](input);
}
[Link]("After throwing");
}
catch (RuntimeException e) {
[Link]("Exception caught here");
[Link](e);
}
}
}
Tabel 1.8 Script [Link] pada latihan 5.1
[Link]
class DataMhs{
private String nim;
private String nama;
private double nilai;
public void setNim(String vnim){
try{
nim = vnim;
if (nim == null){
throw new NullPointerException();
}
}
catch (NullPointerException e) {
[Link]("KESALAHAN : " + "NIM mahasiswa tidak
boleh null");
}
}
public String getNim(){
return nim;
}
public void setNama(String vNama){
try{
nama = vNama;
if (nama == null){
throw new NullPointerException();
}
}
catch (NullPointerException e) {
[Link]("KESALAHAN : " + "Nama mahasiswa tidak
boleh null");
}
}
public String getNama(){
return nama;
}
public void setNilai(int vnilai){
nilai = vnilai;
}
public double getNilai(){
return nilai;
}
}
Tabel 1.9 Script [Link] pada latihan 5.1
[Link]
class DemoThrow{
public static void main(String[] args) {
DataMhs obj = new DataMhs();
[Link]("101533402134");
[Link]("Rudi");
[Link](80);
[Link]("NIM : " + [Link]());
[Link]("Nama : " + [Link]());
[Link]("Nilai : " + [Link]());
}
}
Tabel 2.0 Script [Link] pada latihan 5.2
[Link]
public class DemoThrows{
public
static
void
uji(int
angka)
throws
NullPointerException,
ArithmeticException{
if (angka < 0){
throw new NullPointerException("Kesalahan : null pointer
exception");
}
else {
throw
exception");
}
new
ArithmeticException("Kesalahan
arithmetic
}
public static void main(String[] args) {
try{
uji(-12);
// uji(0);
}
catch (Exception e) {
[Link]("Exception ditangkap di sini");
}
[Link]("Statement setelah block try-catch");
}
}
f. Latihan 6 Membuat Eksepsi Sendiri
Tabel 2.1 Script [Link] pada latihan 6
[Link]
class NegativeNumberException extends Exception {
private int bilangan;
NegativeNumberException(){
}
NegativeNumberException(String pesan){
super(pesan);
}
NegativeNumberException(String pesan, int nilai){
super(pesan);
bilangan = nilai;
}
public int getBilangan(){
return bilangan;
}
}
Tabel 2.2 Script [Link] pada latihan 6
[Link]
class DemoMembuatEksepsi3{
public static int hitungFaktorial(int n) throws NegativeNumberException{
if (n < 0){
throw new NegativeNumberException("Bilangan tidak boleh
negatif", n);
}
int hasil = 1;
for (int i=n; i>=1; i--) {
hasil *=i;
}
return hasil;
}
public static void main(String[] args) {
[Link]("Pada saat menghitung 5!");
try{
[Link]("Hasil = " + hitungFaktorial(5));
}
catch (NegativeNumberException nne) {
[Link]("Bilangan : " + [Link]());
}
[Link]("\nPada saat menghitung -5!");
try{
[Link]("Hasil = " + hitungFaktorial(-5));
}
catch (NegativeNumberException nne) {
[Link]("Bilangan : " + [Link]());
[Link]();
}
}
}
Melakukan Input
g. Membaca input karakter
Tabel 2.3 Script [Link]
[Link]
import [Link].*;
class DemoInputKarakter
{
public static void main(String[] args) throws IOException
{
[Link]("Masukkan sembarang karakter : ");
char ch;
InputStreamReader isr = new InputStreamReader([Link]);
BufferedReader br = new BufferedReader(isr);
ch = (char) [Link]();
[Link]("Karakter yang dimasukkan adalah \'" +ch + "\'");
}
}
h. Membaca input data string
Tabel 2.4 Script [Link]
[Link]
import [Link].*;
class DemoInputString
{
public static void main(String[] args) throws IOException
{
[Link]("Masukkan nama Anda : ");
String nama;
InputStreamReader isr = new InputStreamReader([Link]);
BufferedReader br = new BufferedReader(isr);
nama = [Link]();
[Link]("Halo " + nama + ", sudahkan Anda mengerti
Java?");
}
}
i. Membaca input data numerik : integer
Tabel 2.5 Script [Link]
[Link]
import [Link].*;
class DemoInputNumerik1
{
public static void main(String[] args) throws IOException
{
[Link]("Masukkan sebuah bilangan bulat : ");
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader([Link]);
BufferedReader br = new BufferedReader(isr);
//
input data dianggap sebagai string
temp = [Link]();
try
{
//
konversi dari string ke integer
bilangan = [Link](temp);
}
catch(NumberFormatException nfe)
{
[Link]("Data yang dimasukkan bukan bilangan
bulat");
[Link](1);
}
[Link]("Bilangan
yang
dimasukkan
+bilangan);
}
}
j. Membaca input data numerik : double
Tabel 2.6 Script [Link]
[Link]
import [Link].*;
class DemoInputNumerik2
{
public static void main(String[] args) throws IOException
{
[Link]("Masukkan sebuah bilangan riil : ");
String temp;
double bilangan = 0;
"
+"adalah
"
InputStreamReader isr = new InputStreamReader([Link]);
BufferedReader br = new BufferedReader(isr);
//
input data dianggap sebagai string
temp = [Link]();
try
{
//
konversi dari string ke floating-point
bilangan = [Link](temp);
}
catch(NumberFormatException nfe)
{
[Link]("Data yang dimasukkan bukan bilangan");
[Link](1);
}
[Link]("Bilangan
yang
dimasukkan
+bilangan);
}
}
k. Tugas Praktikum
Tabel 2.7 Script [Link]
[Link]
class NegativeNumberException extends Exception {
private int bilangan;
NegativeNumberException(){
}
NegativeNumberException(String pesan){
super(pesan);
}
NegativeNumberException(String pesan, int nilai){
super(pesan);
bilangan = nilai;
}
public int getBilangan(){
return bilangan;
}
"
+"adalah
"
}
Tabel 2.8 Script [Link]
[Link]
import [Link].*;
class UjiEksepsi{
public static double hitungLuas(int n) throws NegativeNumberException{
if (n < 0){
throw new NegativeNumberException("Bilangan tidak boleh
bernilai negatif", n);
}
double hasil = 6 * n * n;
return hasil;
}
public static void main(String[] args) throws IOException{
InputStreamReader isr = new InputStreamReader([Link]);
BufferedReader buf = new BufferedReader(isr);
int rusuk;
[Link]("Program Perhitungan Luas Permukaan Kubus");
[Link]("Masukkan nilai rusuk kubus : ");
rusuk = [Link]([Link]());
try{
[Link]("Volume = " + hitungLuas(rusuk));
}
catch (NegativeNumberException nne) {
[Link]("Bilangan : " + [Link]());
[Link]();
}
}
}
l. Tugas Rumah
Tabel 2.9 Script [Link]
[Link]
import [Link].*;
class EksepsiMultipleCatch{
public static void main(String[] args) throws IOException{
String nilai;
int a, b;
InputStreamReader input = new InputStreamReader ([Link]);
BufferedReader buf = new BufferedReader(input);
[Link]("Masukkan angka pertama : ");
nilai = [Link]();
try{
a = [Link](nilai);
[Link]("Nilai pertama : " + a );
}
catch (NumberFormatException nfe) {
[Link]("Nilai yang dimasukkan bukan angka");
}
catch (Exception nfe3) {
[Link]("Eksepsi ditangkap");
}
[Link]("Masukkan angka kedua : ");
nilai = [Link]();
try{
b = [Link](nilai);
[Link]("Nilai kedua : " + b);
}
catch (NumberFormatException nfe) {
[Link]("Nilai yang dimasukkan bukan angka");
}
catch (Exception nfe3) {
[Link]("Eksepsi ditangkap");
}
}
}
2) Hasil Kompilasi
a. Latihan 1 poin a
Gambar 1.0 Output latihan 1 poin a
b. Latihan 2 poin a
Gambar 1.1 Output latihan 2 poin b
c. Latihan 3
Latihan 3 poin a
Gambar 1.2 Output latihan 3 poin a
Latihan 3 poin b
Gambar 1.3 Output latihan 3 poin b
Latihan 3 poin c
Gambar 1.4 Output latihan 3 poin c
Latihan 3 poin d
Gambar 1.5 Output latihan 3 poin d
Latihan 3 poin e
Gambar 1.6 Jawaban latihan 3 poin e
d. Latihan 4
Latihan 4 poin a
Gambar 1.7 Output latihan 4 poin a
Latihan 4 poin b
Gambar 1.8 Jawaban latihan 4 poin b
Latihan 4 poin c
Gambar 1.9 Jawaban latihan 4 poin c
e. Latihan 5
Latihan 5.1 a
Gambar 2.0 Output latihan 5.1 a
Latihan 5.1 b
Gambar 2.1 Ouput latihan 5.1 b
Latihan 5.2 dengan uji (0)
Gambar 2.2 Output latihan 5.2 dengan uji (0)
Latihan 5.2 dengan uji (-12)
Gambar 2.3 Output latihan 5.2 dengan uji (-12)
f. Latihan 6
Gambar 2.4 Output latihan 6
Melakukan Input
g. Membaca input karakter
Gambar 2.5 Output [Link]
h. Membaca input string
Gambar 2.6 Ouput [Link]
i. Membaca input numerik : integer
Gambar 2.7 Output [Link]
j. Membaca input numerik : double
Gambar 2.8 Output [Link]
k. Tugas Praktikum
Gambar 2.9 Output tugas praktikum
l. Tugas rumah
Gambar 3.0 Output tugas rumah
3) Pembahasan
1. Latihan 1
Kode program pada latihan satu digunakan untuk menampilkan hasil perhitungan 5/0
dan Ini adalah keluaran program. Akan tetapi, keluaran yang ditampilkan berupa
exception. Hal ini dikarenakan adanya operasi aritmatika tidak sah yaitu bilangan
dibagi nol. Berdasarkan latihan satu dapat disimpulkan ciri-ciri program yang tidak
menggunakan exception handling adalah program yang memiliki output pesan
exception dan di dalam kode program tidak terdapat blok try-catch yang merupakan
blok exception handling.
2. Latihan 2
Kode program pada latihan dua digunakan untuk menampilkan hasil perhitungan 5/0
dan Keluaran program, namun akan terjadi error karena terdapat operasi aritmatika
tidak sah yaitu bilangan yang dibagi nol. Untuk menangani error exception tersebut
dibuatlah exception handling yang berupa blok try-catch. Langkahnya adalah bagian
program yang akan diuji kebenarannya diletakkan di blok try. Kemudian pada blok
catch akan dilakukan penyeleksian kondisi eksepsi, jika memenuhi kondisi tersebut
maka kode program pada blok try tidak ditampilkan, tetapi kode pada blok catch yang
ditampilkan.
3. Latihan 3
Program ini merupakan program Multiple Catch yang memiliki class multiplecatch. .
Program ini menggunakan keywoard exception handling yaitu Try dan Catch.
Program
ini
menggunakan
macam
catch
yang
pertama
(ArrayIndexOutOfBoundsException e) digunakan untuk menangani eksepsi dalam
lingkup array, kedua (NullPointerException e) digunakan untuk menangani eksepsi
dalam ketika mengakses suatu reference variable yang null, ketiga catch(Exception e)
digunakan untuk menangani eksepsi tipe Exception Ex : pembagian dengan bilangan
nol.
Ketika program ditambahkan dengan argument berupa String Nama kota kelahiran
kita maka program akan menampilkan kota yang telah kita inputkan. Dan ketika
ditambahkan argument berupa Angka Nol maka akan menampilkan 0. Sedangkan
jika tanpa argument akan muncul seperti pada hasil output gambar 1.12 karena catch
tidak memiliki isi. Sehingga pada saat program dieksekusi tidak akan menampilkan
apapun karena kosong.
Peletakan catch(Exception e) tidak selalu diletakkan di akhir. Jika pada catch
bertingkat maka catch(Exception e) tidak pasti dituliskan di akhir karena pada catch
bertingkat catch(Exception e) dituliskan sebelum catch(Throwable t). Tetapi jika
menggunakan keyword try-catch, maka penulisan catch(Exception e) selalu diakhir,
dan jika ditambahkan finally maka catch(Exception e) tidak akan terletak diakhir
melainkan berada diantara try dan finally.
4. Latihan 4
Kode program pada latihan empat digunakan untuk melakukan operasi pembagian dan
menampilkan hasilnya. Hasil ini diperiksa melalui blok try-catch-finally. Langkah
menggunakan blok ini adalah kode program yang akan diperiksa diletakkan di dalam
blok try. Kemudian pada blok catch akan diseleksi eksepsinya, jika terjadi eksepsi
yang sesuai maka kode dalam blok catch akan ditampilkan dan kode pada blok try
tidak ditampilkan. Blok finally digunakan untuk meletakkan kode program sebagai
penutup dari blok exception handling dan akan selalu dijalankan. Blok catch dapat
digunakan berkali-kali namun blok finally hanya boleh ada satu di setiap blok trycatch-finally.
Perbedaan dengan exception handling yang lain adalah dengan blok finally
pemrogram dapat memberikan keterangan tentang eksepsi yang sudah diperiksa.
5. Latihan 5
a. Latihan 5.1
Program 1
Kode program pada program ini digunakan untuk melempar eksepsi jika terjadi
kesalahan input. Pada latihan ini dapat dilihat bahwa pada blok try dilakukan
pengecekan variabel input. Jika kondisinya benar maka RuntimeException akan
dilemparkan dengan keterangan throw demo di dalamnya. Karena kondisi
tersebut benar dan terjadi eksepsi maka kode pada blok catch ditampilkan dan
keterangan throw demo ditampilkan pada pesan eksepsi sebagai hasil dari throw.
Program 2
Kode program pada program ini digunakan untuk memasukkan data mahasiswa
dengan menggunakan fasilitas exception handling. Eksepsi yang digunakan adalah
NullPointerException yaitu eksepsi yang timbul karena penggunaan nilai null yang
tidak tepat. Jika input yang digunakan berupa nilai null, maka akan muncul pesan
yang ada dalam blok catch dan throw dari penyeleksian di blok try.
b. Latihan 5.2
Kode program pada latihan 5.2 digunakan untuk menguji kata kunci throws pada
program. Kata kunci ini digunakan apabila sebuah method menyebabkan eksepsi
namun tidak menangkapnya. Pesan yang dilempar tadi akan ditampilkan pada blok
catch yaitu [Link]([Link]());.
6. Latihan 6
Kode program pada latihan enam digunakan untuk menguji eksepsi yang dibuat
sendiri pada operasi faktorial. Pada latihan enam eksepsi yang digunakan adalah
NegativeNumberException yaitu nilai yang dimasukkan tidak boleh negatif. Eksepsi
yang digunakan dibuat dalam suatu kelas yang merupakan keturunan dari kelas
Exception. Kemudian pada kelas lain untuk menguji akan dibuat method untuk
melakukan throws terhadap eksepsi tersebut dan di dalam method ini akan dilakukan
seleksi
jika
bilangan
kurang
dari
nol
maka
akan
dilakukan
throw
NegativeNumberException beserta keterangannya. Hasil pelemparan eksepsi ini akan
ditampilkan dalam method utama di dalam blok try-catch.
7. Melakukan Input
Class DemoInputKarakter merupakan class untuk mencoba menginput karakter
dengan menggunakan objek BufferedReader. Dalam class ini diberikan
IOException untuk mengeksepsi kesalahan dalam input dan output. Class ini
menggunakan method read() untuk membaca inputan yang berupa karakter.
Class DemoInputString merupakan class yang digunakan untuk melakukan
inputan yang berupa String. Dalam class ini berbeda dengan class sebelumnya,
yaitu perlu diberikan method readLine() untuk bisa membaca satu kata secara
keseluruhan.
Class DemoInputNumerik1 digunakan untuk memberi contoh jika input yang
diberikan merupakan angka atau numerik. Dalam class ini inputan yang harus
diberikan adalah bilangan bulat. Dalam class ini dibuat eksepsi dimana saat try
akan dilakukan pengecekan apakah bilangan yang diinput itu merupakan bilangan
bulat atau tidak, jika tidak maka akan di catch dan menampilkan warning berupa
teks.
Class DemoInputNumerik2 hampir sama dengan class DemoInputNumerik2,
perbedaannya terdapat pada tipe data yang bisa dimasukkan. Tipe data yang bisa
digunakan dalam class ini merupakan tipe data double, atau bisa menerima
bilangan dengan tingkat ketelitian di belakang koma. Perbedaan tadi terletak pada
try{bilangan = [Link](temp);}.
8. Tugas praktikum
Kode program pada tugas praktikum digunakan untuk melakukan perhitungan luas
permukaan kubus menggunakan exception handling dan masukan. Pada kode program
ini diterapkan exception yang dibuat sendiri yaitu NegativeNumberException untuk
mengecek nilai masukan. Eksepsi ini akan dilempar dan ditampilkan pada blok catch
jika terjadi eksepsi.
9. Tugas rumah
Kode program pada tugas rumah digunakan untuk menguji nilai masukan,
pengujiannya antara lain kesesuaian tipe data yang dimasukkan dan eksepsi lain yang
mungkin terjadi. Pada kode ini digunakan dua blok try-catch karena masukan yang
digunakan berjumlah dua. Eksepsi yang digunakan adalah NumberFormatException
untuk memeriksa nilai apakah yang dimasukkan berupa bilangan dan Exception untuk
memeriksa kemungkinan error lain. Exception digunakan untuk eksepsi yang tidak
didefinisikan jika pada blok try-catch yang memiliki multi-catch dan Exception
selalui diletakkan pada blok catch terakhir.
DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2016. Modul 6 Exception Handling. Malang :
Universitas Negeri Malang.
2. [Link]/PBO/Minggu%2012/T%20-%20Exception
%[Link]. Diakses pada 15 November 2016