Apa sebenarnya pengecualian kesempatan pertama? Bagaimana dan dari mana asalnya dalam program .NET? Dan mengapa disebut dengan nama yang aneh itu ('kesempatan' apa yang kita bicarakan)?
.net
visual-studio
debugging
exception
first-chance-exception
Frederick The Fool
sumber
sumber
finally
blok apa pun berjalan. Setelah sistem memutuskan siapa yang akan menangkap pengecualian (dan menentukan bahwa seseorang benar-benar akan melakukannya), sistem akan mulai melepas tumpukan. Perhatikan bahwa jika pengecualian dilempar darifinally
blok ...catch
untuk ini, kontrol pergi ke sana. Jika tidak adacatch
blokir, Anda mendapatkan jeda "kesempatan kedua", kali ini pesannya adalah pengecualian jenis 'foo' yang tidak tertangani yang terjadi di YourApp.exe . Dari sini, mencoba melanjutkan atau melangkah lebih jauh tidak akan berhasil.Pemberitahuan pengecualian kesempatan pertama dimunculkan ketika pengecualian dilemparkan. Pemberitahuan kesempatan kedua adalah saat tidak tertangkap. (Peluang - seperti peluang untuk membobol kode di debugger).
Penanganan pengecualian kesempatan pertama dan kedua
sumber
Saya baru saja mulai menggunakan debugger dan menemukan ini. Dalam penelitian saya, saya menemukan entri blog MSDN Apa itu Pengecualian Kesempatan Pertama?yang membersihkannya untuk saya.
Kesimpulan besar dari posting blog bagi saya adalah bahwa ini merujuk pada pemberitahuan ke debugger, dan bukan sesuatu yang perlu ditangani oleh kode saya, dan yang terpenting, "Pesan pengecualian kesempatan pertama paling sering tidak berarti ada masalah di kode."
sumber
Saat aplikasi sedang di-debug, debugger akan diberi tahu setiap kali ada pengecualian. Pada titik ini, aplikasi ditangguhkan dan debugger memutuskan bagaimana menangani pengecualian. Pass pertama melalui mekanisme ini disebut pengecualian "kesempatan pertama".
Bergantung pada konfigurasi debugger, ia akan melanjutkan aplikasi dan meneruskan pengecualian atau membiarkan aplikasi ditangguhkan dan memasuki mode debug. Jika aplikasi menangani pengecualian, itu terus berjalan normal.
Pesan pengecualian kesempatan pertama paling sering tidak berarti ada masalah dalam kode. Untuk aplikasi / komponen yang menangani pengecualian dengan baik, pesan pengecualian kesempatan pertama memberi tahu pengembang bahwa situasi luar biasa telah ditemui dan ditangani.
sumber
Dari perspektif pengembang, ini lebih tentang pengecualian kesempatan kedua, karena itu berarti itu tidak ditangani dalam kode ; oleh karena itu aplikasi akan berhenti.
Kesempatan pertama bisa banyak dari mereka, tapi yang lebih diperhatikan, sekali lagi, dari perspektif pengembangan, adalah kesempatan kedua, karena itu akan menyebabkan aplikasi crash.
sumber