1. Rantai pengecualian disediakan dalam konstruktor Java. Artinya, kita dapat terus menghubungkan pengecualian ke rantai pengecualian melalui konstruktor ...
Alasan mengapa koneksi pengecualian diperlukan adalah karena pemahaman kode, serta pemeliharaan bacaan dan program ...
Kita tahu bahwa setiap kali kita melempar pengecualian, kita perlu mencoba menangkap ... maka bukan kode yang sangat membengkak ...
Jika kita dapat menggabungkan pengecualian ke dalam koneksi pengecualian, maka kita hanya menangkap pengecualian pembungkus kita, kita tahu bahwa runtimeException dan kelas yang diturunkan dapat ditangkap secara otomatis dan diproses oleh JVM tanpa mencoba menangkap ..
Tentu saja, kita dapat mendefinisikan kelas pengecualian kita sendiri untuk diturunkan dari runtimeException, dan kemudian lulus pembungkus satu tingkat. Jika pengecualian muncul, JWM secara langsung menghasilkan penyebab melalui runtimeException khusus kami
(Alasan) adalah rantai pengecualian kami ... oleh karena itu, semua pengecualian kami adalah output, yang mengurangi banyak kode penanganan pengecualian. . .
Only Throwable ---> Exception RunimeException Error menyediakan mekanisme untuk membangun metode untuk mengimplementasikan rantai pengecualian. . . Pengecualian lainnya perlu digunakan melalui initcause
Bangun koneksi pengecualian ...
Sepotong kode berikut adalah contoh sederhana dari koneksi pengecualian ... Anda dapat mencetak pengecualian yang terjadi di seluruh program. .
testt kelas publik {public static void a () melempar Exception {// Top pengecualian untuk menangani superior coba {b (); } catch (Exception e) {lempar pengecualian baru (e); }} public static void b () melempar Exception {// Top pengecualian untuk menangani superior coba {c (); } catch (Exception e) {lempar pengecualian baru (e); }} public static void c () melempar Exception {// Top pengecualian untuk menangani unggul mencoba {lempar nullpointerException baru ("c null pointer Exception dalam rantai pengecualian .."); } catch (nullpointerException e) {lempar pengecualian baru (e); }} public static void main (string [] args) {coba {a (); } catch (Exception e) {E.PrintStackTrace (); }}}2. Coba tangkap ... Akhirnya ada kerentanan, yang merupakan pengecualian. Misalnya, tiga tangkapan mencoba bersarang. Keduanya mencoba menangkap di dalam dapat menghilangkan tangkapan .... belok langsung coba akhirnya ..
Melihat kode berikut, kami menemukan bahwa 2 informasi pengecualian hilang
kelas publik mytest {public void open () melempar Exception {throw new Exception () {public String toString () {return this.getClass (). getName ()+"ceryimmportException"; }; }; } public void close () melempar Exception {throw new Exception () {public String toString () {return this.getClass (). getName ()+"tutup pengecualian"; }; }; } public void tiga () melempar Exception {throw new Exception () {public String toString () {return this.getClass (). getName () + "tiga"; }; }; }; } public static void main (string [] agrs) {mytest mt = mytest baru (); coba {coba {coba {mt.open (); } akhirnya {System.out.println ("Delete Open"); mt.close (); }} akhirnya {system.out.println ("hapus tutup"); Mt.Three (); }} catch (exception ex) {ex.printstacktrace (); }}}Artikel di atas secara singkat membahas rantai pengecualian Java dan kehilangan pengecualian adalah semua konten yang telah saya bagikan dengan Anda. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.