Kode Java apa pun dapat melempar pengecualian, seperti: kode yang ditulis sendiri, kode dari paket lingkungan pengembangan Java, atau sistem runtime Java. Tidak peduli siapa itu, Anda bisa melempar pengecualian melalui pernyataan lemparan Java. Pengecualian apa pun yang dilemparkan dari metode ini harus digunakan dengan klausa lemparan.
1. Melempar Lempar Pengecualian
Jika metode mungkin memiliki pengecualian tetapi tidak memiliki kemampuan untuk menangani pengecualian seperti itu, Anda dapat menggunakan klausa lemparan untuk menyatakan pengecualian yang dilemparkan pada deklarasi metode. Misalnya, mobil mungkin gagal saat berjalan, dan mobil itu sendiri tidak dapat menangani kegagalan ini, jadi biarkan pengemudi menghadapinya.
Pernyataan lemparan digunakan untuk mendeklarasikan jenis pengecualian untuk dilemparkan saat metode didefinisikan. Beberapa pengecualian dapat dibagi menggunakan koma. Format sintaks dari pernyataan lemparan adalah:
MethodName melempar Exception1, Exception2, .., Exceptionn
{
}
Lempar Setelah Metode Name Exception1, Exception2, ..., Exceptionn adalah daftar pengecualian yang akan dilemparkan. Ketika suatu metode melempar daftar pengecualian pengecualian, metode ini tidak akan menangani pengecualian dari tipe -tipe ini dan tipe subkelasnya, tetapi akan dilemparkan ke metode yang memanggil metode ini dan akan ditangani olehnya. Misalnya:
Impor Java.lang.Exception; (String [] args) {// Metode utama coba {// Coba Tangan Pernyataan Informasi Pengecualian POP (); Lempar Pengecualian "); // Informasi Pengecualian Output}}}
Setelah melempar pengecualian ke penelepon menggunakan kata kunci lemparan, jika penelepon tidak ingin menangani pengecualian, Anda dapat terus melemparkannya, tetapi pada akhirnya harus ada penelepon yang dapat menangani pengecualian.
Metode POP tidak menangani pengecualian negativearraysizeException, tetapi ditangani oleh fungsi utama.
Aturan untuk melempar untuk melempar pengecualian:
1) If it is an unchecked exception, that is, Error, RuntimeException or their subclasses, you can declare the exception to be thrown without using the throws keyword, and the compilation will still pass smoothly, but it will be run by the system during Runtime.
2) Pengecualian yang diperiksa yang dapat dilemparkan dengan metode ini harus dinyatakan. Artinya, jika metode mungkin memiliki pengecualian yang dapat diperiksa, itu akan ditangkap dengan pernyataan mencoba-tangkapan atau dinyatakan dengan klausa lemparan, jika tidak itu akan menyebabkan kesalahan kompilasi.
3) Hanya ketika pengecualian dilemparkan, penelepon metode harus menangani atau melempar kembali pengecualian. Ketika metode penelepon tidak dapat menangani pengecualian, itu harus terus melemparkannya alih -alih menelannya utuh.
4) Metode panggilan harus mengikuti aturan penanganan dan deklarasi pengecualian yang dapat diperiksa. Jika metode ditimpa, pengecualian yang berbeda dari metode yang ditimpa tidak dapat dinyatakan. Pengecualian apa pun yang dinyatakan harus serupa atau subkelas dari pengecualian yang dinyatakan dengan metode yang ditimpa.
Misalnya:
Dasar untuk menentukan bahwa pengecualian dapat terjadi dalam metode adalah sebagai berikut:
1) Ada pernyataan lemparan dalam metode ini. Misalnya, blok kode tangkapan dari metode Method7 () di atas memiliki pernyataan lemparan.
2) Metode lain dipanggil, dan metode lain menggunakan klausa lemparan untuk menyatakan beberapa pengecualian untuk dilemparkan. Sebagai contoh, metode Method3 () memanggil metode Method1 (), dan metode Method1 () menyatakan bahwa iOException dilemparkan, sehingga iOException dapat terjadi dalam metode Method3 ().
2. Gunakan lemparan untuk melempar pengecualian
Throw selalu muncul di badan fungsi dan digunakan untuk melempar pengecualian tipe yang dapat dilempar. Program akan berakhir segera setelah pernyataan lemparan, pernyataan setelah itu tidak dapat dieksekusi, dan kemudian di semua blok percobaan yang berisi (mungkin dalam fungsi panggilan tingkat atas) mencari blok mencoba yang berisi klausa tangkapan yang cocok dengan itu dari terbalik.
Kita tahu bahwa pengecualian adalah objek contoh dari kelas pengecualian, dan kami dapat membuat objek instance dari kelas pengecualian untuk dilemparkan melalui pernyataan lemparan. Format sintaks dari pernyataan ini adalah:
Lempar nama pengecualian baru;
Misalnya, lempar objek pengecualian dari kelas IOException:
Lemparkan ioException baru;
Perlu dicatat bahwa hanya melempar objek instance yang dapat melempar kelas yang dapat dilempar atau subkelas. Operasi berikut salah:
lempar string baru ("pengecualian");
Ini karena string bukanlah subclass dari kelas yang dapat dilemparkan.
Jika pengecualian cek dilemparkan, Anda juga harus menyatakan jenis pengecualian yang dapat dilemparkan metode dalam header metode. Penelepon metode ini juga harus memeriksa untuk menangani pengecualian yang dilemparkan.
Jika semua metode melempar lapisan pengecualian yang diperoleh, JVM pada akhirnya akan memprosesnya, dan pemrosesannya juga sangat sederhana, yaitu mencetak pesan pengecualian dan menumpuk informasi. Jika kesalahan atau runimeException dilemparkan, penelepon metode memiliki opsi untuk menangani pengecualian.
Tes Paket; 0 Lempar MyException baru ("Divisor tidak bisa menjadi angka negatif"); ; .out.println (e. GetMessage ()); Catch (Excepti on e) {// Tangani Pengecualian Lainnya System.out.println ("Pengecualian Lain Terjadi dalam Program"); Pesan String; // Tentukan Jenis String Variabel PUBLIK My (String ErrorMessAgr) {// Pesan Metode Parent = ErrorMessAgr;