Ты не прав.
Например:
try
{
// Something throws an exception
}
catch
{
}
Это отключит любое исключение, так что "исключение не будет всплывать".
Возможно, вы имеете в виду, если обязательно попробовать / перехватить, чтобы всплыло исключений для вызывающей стороны какого-либо метода или свойства. Это не .
Для IDisposable реализаций вы можете использовать с помощью оператора , поэтому объект (ы) высвобождает базовые ресурсы:
using(disposableObject)
{
}
А для других, не реализующих IDisposable , вы можете использовать try / finally :
try
{
// Code
}
finally
{
// Do something in any case: even if an exception has been thrown.
}
В любом случае, обратите внимание на тот факт, что повторное генерирование исключения в блоке перехвата , как правило, теряет содержимое трассировки стека , поэтому, если вам нужны сообщения об ошибках с трассировкой исключения, вам необходимо принять попробуйте / наконец подойдите - или с использованием , если в партии есть IDisposable объекты - (подробнее читайте по этой ссылке: http://blogs.msdn.com/b/jmstall/archive/2007/02/07/catch-rethrow.aspx)