


Pengendalian Pengecualian dalam Tangkapan dan Akhirnya Dihalang
Dalam tugasan Java universiti baru-baru ini, seorang pelajar menemui coretan kod berikut dan diminta untuk meramalkan outputnya:
<code class="java">class MyExc1 extends Exception {} class MyExc2 extends Exception {} class MyExc3 extends MyExc2 {} public class C1 { public static void main(String[] args) throws Exception { try { System.out.print(1); q(); } catch (Exception i) { throw new MyExc2(); } finally { System.out.print(2); throw new MyExc1(); } } static void q() throws Exception { try { throw new MyExc1(); } catch (Exception y) { } finally { System.out.print(3); throw new Exception(); } } }</code>
Apabila pelajar menjawab dengan "13Exception dalam utas utama MyExc2," mereka terkejut apabila mengetahui bahawa jawapan yang betul ialah "132Exception dalam thread utama MyExc1."
Memahami Penyebaran Pengecualian dalam Tangkapan dan Akhirnya Blok
Untuk memahami output yang betul, adalah penting untuk memahami gelagat pengecualian dalam tangkapan dan akhirnya menyekat. Mengikut mekanisme pengendalian pengecualian Java:
- Apabila pengecualian dilemparkan dalam tangkapan atau akhirnya blok yang akan disebarkan keluar dari blok itu, pengecualian semasa secara automatik dibatalkan dan dilupakan.
- Pengecualian baharu mula membuka timbunan, mematuhi sebarang tangkapan atau akhirnya menyekat sepanjang jalan.
- Terutamanya, pengecualian baharu yang dilemparkan dalam blok tangkapan masih tertakluk pada blok akhirnya tangkapan itu, jika ada.
Dalam blok tangkapan, pengecualian baharu, MyExc2, tercampak. Ini membatalkan pengecualian asal, MyExc1.
Pengecualian MyExc2 disebarkan keluar dari blok tangkapan dan ke dalam blok akhirnya.Blok akhirnya mencetak "2." Walau bagaimanapun, sebelum keluar daripada kaedah q, blok akhirnya melemparkan pengecualian baharu, yang mula membuka lilitan tindanan.- Pengecualian baharu ialah Pengecualian yang tidak ditangkap dalam blok tangkapan kaedah q.
- Pengecualian Pengecualian merambat keluar dari kaedah q dan ke dalam blok akhirnya dalam kaedah utama.
- Blok akhirnya dalam cetakan utama "3" dan kemudian membuang pengecualian MyExc1.
- Pengecualian MyExc1 merambat keluar daripada kaedah utama dan ditangkap oleh mesin maya.
- Memahami Output
- Daripada pengesanan ini, kita dapat melihat bahawa:
- Pengecualian terakhir yang merambat keluar daripada kaedah utama ialah MyExc1.
Oleh itu, output yang betul ialah "132Exception dalam utas utama MyExc1."
Atas ialah kandungan terperinci Mengapakah coretan kod menghasilkan output \'132Exception dalam utas utama MyExc1\' walaupun fakta bahawa pengecualian MyExc2 dilemparkan ke dalam blok tangkapan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan