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

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


for getchar0,putcharо for getchO atoiO ,atof 0

ttdefine eof -1 ttdefine maxline 1000

Ctrl+z

/* Функция getline(s,lim) вводит с клавиатуры строку в s и возвращает длину введенной строки с учетом символа \0;

lim - максимальное количество символов, которое можно ввести в строку s*/

int getline(char s[],int lim) {

int c,i;

for(i=0; i<lim-l && (c=getchar()) != eof && с != Xn; i++)

s[i]=c; s[i]=\0;

i++; для учета количества

return(i);

-------------------------------------------

int tmain() {

char *buf; try

buf = new char[10]; отвели место для строки из 10 символов getline(buf,200); ошиблись : макс, длина строки задана

в 200 символов throw 1; этот оператор выбросит исключение, если оно возникнет

ttinclude stdafx.h ttinclude <stdio.h> ttinclude <conio.h> ttinclude <stdlib.h>



int i=buf[0]; }

catch(int) {

printf( Convertion Exception!\n );

catch (...) обработчик исключения любого типа (должен быть последним) (

Console:: WriteLine (L McKTO4eHHe! ) ; printf ( Raised Exception! \n ) ;

Г :\WINDOWS\system32Vcmd.exe

.a23456789 1 Kaised Exception?

iina продолжения нажмите любую клавишу

Рис. 13.2. Обработка преобразования данных

Заметим, что первым сработал самый внутренний обработчик. Если бы преобразование в число было правильным, то сработал бы уже внешний обработчик (рис. 13.3) (если бы было превышение количества введенных символов).

~ C:\WINOOWS\system32\cm(J.exe

4.2345678 Raised Exception?

я продолжения нажмите любую клавишу

Рис. 13.3. Обработка превышения размера строки

При обработке исключений можно задавать классы типов HCKjno4eHHH. Например, обрабатывать все исключительные ситуации из класса исключений, возникающих при выполнении арифметических операций, и т. п. Все гипы таких классов расположены в пространстве System. В табл. 13.1 представлены некоторые такие классы.



Таблица 13.1. Классы типов исключений

Класс

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

AccessViolationException

Когда идет попытка чтения/записи в защищенной памяти

AppDomainUnloadedException

Когда идет попытка доступа к незагружае-мой области приложения

ApplicationException

Когда в приложении возникает не фатальная ошибка

ArgumentException

Когда один из аргументов метода недействителен

ArgumentNullExcept ion

Когда методу передается нулевая ссылка, а метод ее не распознает как действительный аргумент

ArgumentOutOfRangeException

Когда значение аргумента выходит за границы, определенные методом

ArithmeticException

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

ArrayTypeMismatchException

При попытке поместить элемент в массив, тип которого не совпадает с типом злемента

DivideByZeroException

Когда идет попытка деления числа на ноль

EntryPointNotFoundException

При попьпке загрузить класс в случае отсутствия точки входа (например, в приложении отсутствует метод main {))

Exception

В момент выполнения приложения

FieldAccessException

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

FormatException

Когда обнаруживается нарушение формата аргумента, объявленного в методе

IndexOutOfRangeException

При выходе индекса массива за границы массива

InsufficientMemoryException

Из-за нехватки памяти

InvalideastException

При неправильном преобразовании данных



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

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