В принципе, ничто не мешает рассматривать в качестве исключений не только ошибки, но и нормальные ситуации, возникающие при обработке данных, но это не имеет преимуществ перед другими решениями, не улучшает структуру программы и не делает ее понятнее.
Исключения генерирует либо среда выполнения, либо программист с помощью оператора throw. В табл. 4.1 приведены наиболее часто используемые стандартные исключения, генерируемые средой. Они определены в пространстве имен System. Все они являются потомками класса Exception, а точнее, потомками его потомка SystemException.
Исключения обнаруживаются и обрабатываются в операторе try.
Таблица 4.1. Часто используемые стандартные исключения
Имя Описание.
ArithmeticException Ошибка в арифметических операциях или
преобразованиях (является предком
DivideBeZeroException иOverFlowException)
ArrayTypeMismatchException Попытка сохранения в массиве элемента
несовместимого типа
DivideByZeroException Попытка деления на ноль
FormatException Попытка передать в метод аргумент неверного формата
IndexOutOfRangeException Индекс массива выходит за границы диапазона
InvalidCastException Ошибка преобразования типа
OutOfMemoryException Недостаточно памяти для создания нового объекта
OverFlowException Переполнение при выполнении арифметических
операций
StackOverFlowException Переполнение стека