.NET не имеет принудительных («проверенных») исключений, таких как Java. Intellisense может показывать эту информацию, если разработчик добавил блок /// <exception.../>
- но в конечном итоге может произойти больше исключений, чем вы ожидаете (OutOfMemoryException
, ThreadAbortException
, TypeLoadException
и т. Д. Все может произойти довольно непредсказуемо).
В общем, вы должны иметь представление о том, какие вещи могут пойти не так, и какие из них вы действительно можете сделать что-то полезное. В большинстве случаев правильное поведение заключается в том, чтобы исключение всплыло (просто запустив любой код "finally" для освобождения ресурсов).
Эрик Липперт ведет хороший блог на эту тему здесь .