Пожалуйста, рассмотрите следующий фрагмент кода, который выдает три разных исключения (а именно 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 и повторять код внутри каждого из них?