English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Основной курс

C# Уровень продвинутый

C# Ориентирован на объекты (OOP)

Классы исключений (Exception) в C#

Здесь вы узнаете о встроенных классах исключений в C#.

C#.NET предоставляет内置异常 классы для каждого возможного ошибки. Класс Exception является базовым классом для всех классов исключений.

Ниже приведена иерархия классов исключений в .NET:

Классы исключений в .NET

В上图, класс Exception является базовым классом для классов SystemException и ApplicationException. Класс SystemException является базовым классом для всех исключений, которые могут возникать в процессе выполнения программы. Класс ApplicationException должен быть наследован для создания своих пользовательских исключительных классов. Можно создавать пользовательские классы для violations правил бизнеса или других связанных с приложением ошибок.

На следующем рисунке показано, как в режиме отладки Visual Studio вызывается NullReferenceException при попытке доступа к свойству null объекта.

NullReferenceException

Внутренние异常 классы

В таблице ниже перечислены важные内置异常 классы в .NET.

Категория исключенийОписание
ArgumentExceptionВ случае вызова метода с передачей недействительного параметра, который не является null.
ArgumentNullExceptionВ случае вызова метода с передачей null параметра.
ArgumentOutOfRangeExceptionВ случае, когда значение параметра выходит за пределы диапазона допустимых значений.
DivideByZeroExceptionВ случае деления целого числа на ноль.
FileNotFoundExceptionВ случае отсутствия физического файла в указанном месте.
FormatExceptionВ случае, когда формат значения не подходит для преобразования из строки через метод преобразования (например, Parse).
IndexOutOfRangeExceptionВ случае, когда индекс массива выходит за пределы нижнего или верхнего предела массива или集合а.
InvalidOperationExceptionВ случае вызова метода в текущем состоянии объекта, который является недействительным.
KeyNotFoundExceptionВ случае отсутствия указанного ключа для доступа к членам集合а.
NotSupportedExceptionВ случае вызова метода или операции, которая не поддерживается.
NullReferenceExceptionВызывается при попытке доступа к члену пустого объекта.
OverflowExceptionВызывается при переполнении при арифметических,强制转换 или преобразовательных операциях.
OutOfMemoryExceptionВызывается при недостатке памяти для выполнения кода.
StackOverflowExceptionВызывается при переполнении стека в памяти.
TimeoutExceptionИнтервал времени, выделенный для операции, истек.

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