Поделиться через


Исключения, создаваемые компилятором (Руководство по программированию в C#)

Обновлен: Ноябрь 2007

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

Исключение

Описание

ArithmeticException

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

ArrayTypeMismatchException

Создается, когда массив не может хранить данный элемент, поскольку фактический тип элемента несовместим с фактическим типом массива.

DivideByZeroException

Создается при попытке разделить целое число на ноль.

IndexOutOfRangeException

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

InvalidCastException

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

NullReferenceException

Создается при попытке ссылки на объект, значение которого равно null.

OutOfMemoryException

Создается при неудаче попытки выделения памяти с помощью оператора new. Это означает, что память, доступная для среды выполнения, уже исчерпана.

OverflowException

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

StackOverflowException

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

TypeInitializationException

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

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Исключения и обработка исключений (руководство по программированию в C#)

Обработка исключений (Руководство по программированию на C#)

try-catch (Справочник по C#)

try-finally (Справочник по C#)

try-catch-finally (Справочник по C#)