Мегаобучалка Главная | О нас | Обратная связь


Типы исключений. Фильтры исключений.



2019-08-13 311 Обсуждений (0)
Типы исключений. Фильтры исключений. 0.00 из 5.00 0 оценок




(Определение исключения в вопросе 24.)

Рядом с блоком catch можно также писать тип исключений. Если типа не будет, то блок catch обработает любое исключение, которое ему попадется.

catch (тип_исключения)

{

// выполняемые инструкции

}

 

Тип исключения — это та информация, которую мы хотим получить, чтобы понять, что конкретно пошло не так.

Типы исключения:

· InnerException — хранит информацию об исключении, которое послужило причиной текущего исключения;

· Message — хранит текст ошибки;

· Source — хранит имя объекта или сборки, которое вызвало исключение;

· StackTrace — возвращает строковое представление стека вызывов, которые привели к возникновению исключения;

· TargetSite — возвращает метод, в котором и было вызвано исключение;

· также существует много специализированных типов для обработки конкретных исключений.

Фильтры исключений позволяют обрабатывать исключения в зависимости от определенных условий. Фильтр пишется через выражение when («когда»).

catch when(условие)

{

 

}

Что означает модификатор virtual?

(Определение полиморфизма и переопределения методов в вопросе 21.)

Те методы и свойства, которые мы хотим сделать доступными для переопределения, помечаются модификатором virtual.

В чем разница между абстрактными и виртуальными методами?

Абстрактный класс это класс, содержащий хотя бы один метод (abstract). Виртуальный метод имеет реализацию и может быть переопределен в производном классе. Абстрактный метод не имеет реализацию, только описание метода, который должен быть реализован в производных классах.

Что обозначает ключевое слово virtual для метода?

То же, что и вопрос 27.

Чем отличается event от delegate?

Делегаты указывают на методы, а события указывают на делегатов.

Делегаты – это объекты, которые указывают на методы. То есть, как представители класса, только представители метода.

Для объявления делегата используется ключевое слово delegate, после которого идет возвращаемый тип, название и параметры.

delegate void Message();

Можно привести в пример сравнение с папкой, как в вопросе 8. Теперь метод – это папка. Тогда название делегата – это цвет папки. На папке приклеена маленькая рамочка – переменная делегата. В эту рамочку нужно поместить уже существующую бирку с названием уже существующего метода. Тогда для вызова этого метода можно будет записывать только переменную.

delegate void Message(); // 1. Объявляем делегат

Message mes; // 2. Создаем переменную делегата

mes = GoodMorning; // 3. Присваиваем этой переменной адрес метода

mes(); // 4. Вызываем метод

 

События сигнализируют системе о том, что произошло определенное действие.

События объявляются в классе с помощью ключевого слова event, после которого идет название делегата. Каждое событие привязано к делегату.

В чем разница инкапсуляции от сокрытия?

(Определение инкапсуляции в вопросе 9.)

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

Кому доступны переменные с модификатором protected на уровне класса?

Переменные с модификатором protected доступны во внутреннем классе и в классах наследниках.

(Определение модификаторов доступа в вопросе 9.)

Поддерживает ли C# множественное наследование?

Нет, нужно использовать интерфейсы (interface).

Наследуются ли переменные с модификатором private?

Да, наследуются. Но только в рамках текущего класса.

Можно ли хранить разные типы данных в объекте класса System. Array?

Да, в массивах можно хранить значения разных типов данных.

Какой синтаксис нужно использовать в C# для отлова любого возможного исключения?

Try-catch-finally. (Подробнее в вопросе 24.)

Можно ли выполнить несколько блоков catch для одного оператора try?

Да, можно. Если поставить разным блокам catch поставить разные типы исключений и разные условия с помощью выражения when. (Подробнее в вопросе 24.)

Какой синтаксис используется для указания класса родителя в C#?

Наследование от класса родителя указывается с помощью « : » (знака двоеточие) после, написанного сразу после названия дочернего класса, а после него название класса родителя.

public class A { }

public class B : A { } < здесь класс В является дочерним классу А

Можно ли разрешить наследование класса, но запретить переопределение метода?

(Подробнее про наследование в вопросе 15.)

(Подробнее про переопределение методов в вопросе 21.)

Да. Один класс можно унаследовать от другого класса. Однако, нельзя запретить переопределять наследованный метод.

Можно ли запретить наследование от своего собственного класса?

Да, можно. Для этого существует модификатор доступа sealed.

Что такое интерфейс класса?

Интерфейсы, как и классы, определяют набор свойств, методов и событий. Но, в отличие от классов, они не содержат их реализации. Интерфейсы реализуются классами и определяются как самостоятельные сущности.



2019-08-13 311 Обсуждений (0)
Типы исключений. Фильтры исключений. 0.00 из 5.00 0 оценок









Обсуждение в статье: Типы исключений. Фильтры исключений.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (311)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)