Перехват исключений производных классов

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002139.docx

Перехват исключений производных классов

Если нужно перехватывать исключения и базового, и производного класса, поместите первой в catch-последовательности инструкцию с за- данием производного класса. В противном случае catch-инструкция с за- данием базового класса будет перехватывать все исключения производ- ных клаcсов.

 

// Инструкции перехвата исключений производных классов

// должны стоять перед инструкциями перехвата

// исключений базовых классов. using System;

 

class ExceptA : ApplicationException

{

public ExceptA() : base() { }

public ExceptA (string str) : base(str) { }

}

 

class ExceptB : ExceptA

{

public ExceptB() : base() { }

public ExceptB (string str) : base(str) { }

}

 

class OrderMatters

{

public static void Main()

{

for (int x = 0; x < 3; x++)

{

try

{

if (x == 0) throw new ExceptA (

"Исключение типа ExceptA."); else if (x == 1) throw new ExceptB (


" Исключение типа ExceptB."); else throw new Exception();

}

 

catch (ExceptB exc)

{

Console.WriteLine(exc);

}

 

catch (ExceptA exc)

{

Console.WriteLine(exc);

}

 

catch (Exception exc)

{

Console.WriteLine(exc);

}

}

}

}