Вам необходимо указать конкретный тип исключения, которое вы перехватываете, и назначить его переменной.
Сделайте это, используя вместо этого следующий синтаксис:
try
{
// Do work
}
catch (MyUndefinedExceptionObject ex)
{
Debug.WriteLine(ex.Message);
}
Вы также можете включить несколько блоков перехвата с соответствующим измененным типом исключения.Однако помните, что вы всегда должны упорядочивать их из большинства производных до наименьшего производного, заканчивая базовым классом для всех исключений, System.Exception
.
Вы также должныобычно воздерживаются от перехвата System.Exception
, вместо этого предпочитая only , чтобы перехватывать производные исключения, которые вы можете обработать в блоке catch
, и это не повредит состоянию вашей программы.Поймать System.Exception
класс - плохая идея, потому что вы также поймаете исключения, которые вы не сможете обработать, например OutOfMemoryException
или StackOverflowException
.
У Microsoft есть полезная статья о лучших практиках здесь: Лучшие практики для обработки исключений