Kami tahu bahwa mencoba bertanggung jawab untuk mengetik kode yang dapat menghasilkan pengecualian; Catch bertanggung jawab untuk menangani kemungkinan pengecualian dalam mencoba, seperti merekam log kesalahan untuk memungkinkan bisnis berjalan secara normal; Akhirnya bertanggung jawab atas pekerjaan akibat seperti rilis sumber daya, dan kode yang harus dieksekusi terlepas dari apakah ada atau tidak umumnya ditempatkan di akhirnya. Jika menangkap dan akhirnya juga mengalami pengecualian, apa efeknya?
coba {// java.lang.arithmeticException int a = 1 /0; } catch (Exception e) {System.out.println ("Catch"); // java.lang.nullpointerException nilai string = null; System.out.println (value.length ()); } akhirnya {System.out.println ("akhirnya"); // java.lang.ArrayIndExoutOfBoundsException int [] array = {1, 2, 3}; System.out.println (array [6]); }Hasil eksekusi akhir dari kode ini adalah: ArrayIndExoutOfBoundSException akan dilemparkan. Pengecualian terjadi dalam kode dalam mencoba, dan tangkapan yang sesuai akan dieksekusi;
Jika pengecualian terjadi saat menangkap, itu akan dieksekusi akhirnya; Jika akhirnya ada pengecualian, itu akan langsung dilemparkan ke JVM karena tidak diproses. Jika tidak digunakan di sini
Akhirnya blok, NullpointerException akan dilemparkan.
Ini berarti pengecualian yang muncul di Catch dan akhirnya akan dilemparkan secara langsung. Jika kami tidak memprosesnya, kesalahan akan dihasilkan saat runtime. Ini mengingatkan kita bahwa jika tangkapan dan akhirnya pengecualian juga dapat terjadi, maka coba-tangkapan harus diproses lagi.
Beberapa hal penting (harus dibaca) dalam artikel di atas "coba-tangkapan-akhir" adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.