Программирование >>  Элементы языков с и с++ 

1 ... 173 174 175 [ 176 ] 177 178 179 ... 200


Таблица 13.1 (продолжение)

Класс

Исключительная ситуация возникает:

InvalidOperationException

Когда для текущего состояния объекта вызов метода неверен

MemberAccessException

При неудачной попытке доступа к члену класса

MethodAccessException

При неудачной попытке доступа к private- или protected-методу внутри класса

MissingFieldException

При попытке динамического доступа к несуществующему полю класса

MissingMemberException

При попытке динамического доступа к несуществующему члену класса

HissingMethodException

При попытке динамического доступа к несуществующему методу класса

NotFiniteNumbecException

При обработке несуществующего или бесконечного числа с плавающей точкой

NotSupportedException

При вызове метода, который не поддерживается, или при работе с потоком данных, когда требуемая функциональность не поддерживается

NullReferenceException

При попытке разыменовать нулевую ссылку

OutOfMemoryException

При нехватке памяти для продолжения работы программы

OverflowException

При превышении значений арифметических операций или операций преобразования в контролируемом контексте

PlatformNotSupportedException

При попытке запустить приложение на неподдерживаемой платформе

RankException

При попытке передачи массива с неверной размерностью в метод

StackOverflowException

При переполнении стека (слишком много вызовов методов)



Таблица 13.1 (окончание]

Класс

Исключительная ситуация возникает:

TimeoutException

По истечении времени, отведенному для процесса или операции

TypeLoadException

При сбое в момент загрузки некоторого типа

TypeUnloadedExcepti on

При попытке доступа к незагруженному классу

UnauthorizedAccessException

При попытке неавторизованного доступа (операционная система отвергает доступ из-за ошибки ввода/вывода или из-за нарушения специального типа безопасности)

UriFormatException

При обнаружении неверного Uniform Resource Identifier (URI)

Пример 3

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


Пуск

Выхоа

iE MultiLine

1. Режии проектирования

IForml

Пуск

Выхоа

Системное

сообщение:АИетр1ес1 (о divide Ьу zero. Шаг цикла=682

2. Режим 1кполнен11я

Рис. 13.4. Форма программы в режиме проектирования и исполнения



Зададим такой алгоритм: возьмем массив целых чисел, датчик случайных чисел в интервале [1, 10] и организуем деление каждого элемента массива на полученное случайное число следующим образом: 1-й элемент массива делим на 1-е случайное число, 2-й - на 2-е и т. д. Для простоты мы взяли массив из 3-х элементов. Поместим в форму две кнопки, одна из которых будет запускать на вьтолнение наш алгоритм, а другая обеспечит выход из при;ю-жения. Текст обработчиков событий этих кнопок приведен в листинге 13.3, а результат расчетов - на рис. 13.4.

Пистинг13.3

private: System: :Void buttonl Click(Systein: :Object~ sender. System: :EventArgs e)

array <int -m = gcnew array <int (3) 11,2,3) ; array <int kl = gcnew array <int (1) (0); для вывода

счетчика while в виде строки / разделим 1-й элемент массива т[] на 1-е случайное число, 2-й - на 2-е и т.д.*/

lint jl;

int i;

int k=0;

try I

while(к < 1000)

for(i=0; i < m->Length; i++)

( .

Random r = gcnew Random(); формирование обращения

к датчику случайных чисел int j=r->Next(О,10); выдает случайное число в интервале [0,10]

switch(i) I

case 0: jl= (int) m[i] / j; break; case 1: jl= (int) m[i] / j; break; case 2: jl= (int) m[i] / j; break; default: break;



1 ... 173 174 175 [ 176 ] 177 178 179 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика