Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Runtime bahasa pemrograman yang umum memungkinkan sebagian besar pengecualian yang tidak tertangani dalam utas untuk berlangsung secara alami. Dalam kebanyakan kasus, ini berarti bahwa pengecualian yang tidak tertangani menyebabkan aplikasi dihentikan. Namun, runtime bahasa umum menyediakan mekanisme pengaman untuk pengecualian tertentu yang tidak tertangani yang digunakan untuk mengendalikan alur program.
Sebuah ThreadAbortException dilempar pada utas karena Abort dipanggil. Ini hanya berlaku untuk aplikasi .NET Framework.
AppDomainUnloadedException dilemparkan dalam sebuah utas karena domain aplikasi tempat utas tersebut berjalan sedang dibongkar.
Runtime bahasa umum atau proses host mengakhiri utas dengan melemparkan pengecualian internal.
Jika salah satu dari pengecualian ini tidak ditangani dalam utas yang dibuat oleh Common Language Runtime (CLR), pengecualian tersebut mengakhiri utas, tetapi CLR tidak memungkinkan pengecualian untuk melanjutkan.
Jika pengecualian ini tidak tertangani di utas utama, atau di utas yang memasuki runtime dari kode yang tidak dikelola, mereka melanjutkan secara normal, yang mengakibatkan penghentian aplikasi.
Nota
Dimungkinkan bagi runtime untuk melemparkan pengecualian yang tidak tertangani sebelum kode terkelola memiliki kesempatan untuk menginstal handler pengecualian. Meskipun kode terkelola tidak memiliki kesempatan untuk menangani pengecualian seperti itu, pengecualian diizinkan untuk dilanjutkan secara alami.
Mengekspos masalah utas selama pengembangan
Ketika utas diizinkan untuk gagal secara diam-diam, tanpa mengakhiri aplikasi, masalah pemrograman serius dapat tidak terdeteksi. Ini adalah masalah khusus untuk layanan dan aplikasi lain yang berjalan untuk jangka waktu yang lama. Saat proses gagal, status program secara bertahap menjadi terganggu. Performa aplikasi mungkin turun, atau aplikasi mungkin menjadi tidak responsif.
Memungkinkan pengecualian yang tidak tertangani dalam utas berlanjut secara alami, sampai sistem operasi menghentikan program, mengekspos masalah tersebut selama pengembangan dan pengujian. Laporan kesalahan tentang penghentian program mendukung debugging.
Penggantian host
Host yang tidak dikelola dapat menggunakan antarmuka ICLRPolicyManager di API Hosting untuk mengambil alih kebijakan pengecualian default yang tidak tertangani dari runtime bahasa umum. Fungsi ICLRPolicyManager::SetUnhandledExceptionPolicy digunakan untuk mengatur kebijakan untuk pengecualian yang tidak tertangani.