Що саме є першим шансом виключення? Як і звідки вона бере свій початок у програмі .NET? І чому його називають такою своєрідною назвою (про який «випадковість» ми говоримо)?
Що саме є першим шансом виключення? Як і звідки вона бере свій початок у програмі .NET? І чому його називають такою своєрідною назвою (про який «випадковість» ми говоримо)?
Відповіді:
Це концепція налагодження. В основному винятки переносяться спочатку до налагоджувача, а потім до фактичної програми, де, якщо з нею не обробляється, він потрапляє до налагоджувача вдруге , що дає вам можливість зробити щось із цим у своєму IDE до та після самого додатка. Схоже, це винахід Microsoft Visual Studio.
catch
для цього, контроль переходить туди. Якщо catch
блоку немає , ви отримуєте перерву "другого шансу", цього разу повідомлення є Неопрацьованим винятком типу "foo" у YourApp.exe . Звідси намагання продовжувати чи крокувати далі не матиме успіху.
Повідомлення про виняток із першого шансу виникають, коли викидає виняток. Повідомлення про другий шанс - це коли його не спіймали. (Шанс - як у можливості прорватися до коду у відладчику).
Я тільки почав використовувати налагоджувач і наткнувся на це. У своєму дослідженні я виявив повідомлення в блозі MSDN Що таке виняток з першого шансу? що прояснило це для мене.
Для мене великі виводи з публікації в блозі - це те, що воно стосується повідомлення про відладчик, а не те, з чим міг би обов'язково обробляти свій код, і найголовніше: "Повідомлення про виключення першого шансу найчастіше не означають, що є проблема в код ".
Коли програма налагоджується, про відладчик отримує повідомлення, коли виникає виняток. У цей момент додаток призупиняється, і налагоджувач вирішує, як обробити виняток. Перший прохід через цей механізм називається винятком "першого шансу".
Залежно від конфігурації налагоджувача, він або відновить додаток і передасть виняток, або залишить програму призупиненою та вступить у режим налагодження. Якщо програма обробляє виняток, вона продовжує працювати нормально.
Повідомлення про виключення першого шансу найчастіше не означають проблеми в коді. У додатках / компонентах, які випрацьовують винятки витончено, повідомлення про винятки з першої випадковості повідомляють розробника про те, що виникла виняткова ситуація та була вирішена.
З точки зору розробника, це більше стосується виключення, що стосується другого шансу, оскільки це означатиме, що він не оброблявся в коді ; тому додаток буде припинено.
Перший шанс може бути багатьма з них, але ті, що турбуються про більше, знову ж таки, з точки зору розвитку, - це другий шанс, оскільки це призведе до збою додатків.
finally
запуску будь-яких блоків. Як тільки система вирішила, хто збирається зловити виняток (і визначила, що хтось насправді збирається), система почне розмотувати стек. Зауважте, що якщо виняток буде викинуто зfinally
блоку ...