Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

16.4Общие классы исключений

Следующие исключения вызываются определенными операциями языка C#.

System.ArithmeticException

Базовый класс для исключений, происходящих при арифметических операциях, например System.DivideByZeroException и System.OverflowException.

System.ArrayTypeMismatchException

Вызывается при ошибке сохранения в массиве, оттого что фактический тип сохраняемого элемента несовместим с фактическим типом массива.

System.DivideByZeroException

Вызывается при попытке деления целого значения на нуль.

System.IndexOutOfRangeException

Вызывается при попытке индексировать массив индексом меньше нуля или выходящим за границы массива.

System.InvalidCastException

Вызывается при ошибке во время выполнения явного преобразования из базового типа или интерфейса в производный тип.

System.NullReferenceException

Вызывается, если пустая ссылка используется таким образом, что требуется объект, на который указывает ссылка.

System.OutOfMemoryException

Вызывается при неудачной попытке выделения памяти (с помощью оператора new).

System.OverflowException

Вызывается при переполнении в арифметической операции в контексте checked.

System.StackOverflowException

Вызывается при исчерпании стека выполнения из-за слишком большого числа отложенных вызовов методов; обычно это указывает на очень глубокую или неограниченную рекурсию.

System.TypeInitializationException

Вызывается, когда статический конструктор создает исключение и нет предложений catch для его перехвата.

17.Атрибуты

Многое в языке C# дает возможность программисту указывать декларативные сведения о сущностях, определенных в программе. Например, доступность метода в классе указывается путем добавления к нему модификаторов_метода public, protected, internal и private.

Язык C# позволяет программистам создавать новые виды декларативных сведений, называемых атрибутами. Программист может присоединить эти атрибуты к различным программным сущностям и извлекать сведения атрибута в среде выполнения. Например, структура может определить атрибут HelpAttribute, который можно поместить в определенные программные элементы (такие как классы и методы), чтобы обеспечить отображение из этих программных элементов в соответствующую им документацию.

Атрибуты определяются посредством объявления классов атрибутов (§17.1), которые могут иметь позиционные и именованные параметры (§17.1.2). Атрибуты вложены в сущности в программе C# с помощью спецификаций атрибутов (§17.2) и могут извлекаться во время выполнения как экземпляры атрибутов (§17.3).

17.1Классы атрибутов

Класс, который прямо или косвенно производится от абстрактного класса System.Attribute, является классом атрибута. Объявление класса атрибута определяет новый вид атрибута, который можно поместить в объявлении. Классы атрибутов принято именовать с помощью суффикса Attribute. При использовании атрибута суффикс может оставаться или опускаться.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]