Попробуйте / поймать блоки внутри конструкторов - PullRequest
14 голосов
/ 18 февраля 2010

Это плохая практика программирования - иметь блоки try / catch внутри конструкторов? Или это не имеет значения, если наши программы корректно обрабатывают исключения typeinitializer.

В C #, если в конструкторе есть какие-либо исключения, каркас всегда генерирует исключения typeinitilizer.

Спасибо, Шамика

1 Ответ

21 голосов
/ 18 февраля 2010

System.TypeInitializationException генерируется, когда конструктор static генерирует исключение, а не конструктор экземпляра. Исключения обычно генерируются в конструкторах экземпляров.

Кроме этого, в этом нет ничего "плохого", как и везде; обрабатывать исключения, из которых вы можете корректно восстановиться, и разрешать те, которые вы не можете всплыть.

...