Пожалуйста, рассмотрите следующий фрагмент кода, который выдает три разных исключения (а именно System.Configuration.ConfigurationErrorsException
, System.FormatException
и System.OverflowException
):
int SomeInt = Convert.ToInt32(ConfigurationManager.AppSettings["SomeIntValue"]);
Исключения разные, поэтому на практике у меня должно быть три разных блока catch
для обработки каждого конкретного исключения. Однако в этом конкретном случае все исключения обрабатываются одинаково: журнал записывается, скажем, в EventViewer, и отображается сообщение об ошибке конфигурации. В этой конкретной причине слишком плохо использовать
try
{
int SomeInt = ConfigurationManager.AppSettings["SomeIntValue"];
}
catch (Exception ThisException)
{
/* Log and display error message. */
}
или я должен использовать три блока catch
и повторять код внутри каждого из них?