Практикум по объектно-ориентированному программированию на базе языка с++ Учебно-методическое пособие


Задание  1. Выполнить обработку исключительных ситуаций согласно приведен- ному ниже коду.  2. В разработанном классе intArray



Pdf көрінісі
бет32/44
Дата21.02.2024
өлшемі0.49 Mb.
#492719
түріПрактикум
1   ...   28   29   30   31   32   33   34   35   ...   44
ООП С

Задание 
1. Выполнить обработку исключительных ситуаций согласно приведен-
ному ниже коду. 
2. В разработанном классе intArray (лабораторная работа № 8) заменить 
запись кода ошибки в поле error на возбуждение исключительной си-
туации того или иного типа и организовать ее обработку. 
 
// функция нахождения частного от деления двух чисел и возбуждение 
исключительной // ситуации 
double divide(double a, double b) 

if (b==0) throw (b); 
else return a/b; 

// функция проверки наличия символа в строке и возбуждение исключи-
тельной ситуации 
int no_symbol(char *str, char symbol) 
 
 


55 

for (int i=0;i
if(str[i] == symbol)

char message[80]=”string has’t consist symbol –“ 
get_messag(message,sym); 
throw message

return 1; 

void get_message(char *message, char sym) 

while(*message++); 
message--; 
*message++=sym; 
*message=’\0’; 

// Пример обработки исключительных ситуаций в функции main() 
int main() 

try 

divide(2/5); 
divide(2/0) 
no_symbol(“Hello my friend”,’f’); 
no_symbol(“September is good time”,’t’);

catch(char *message){printf “ %s\n”, message);} 
catch(double b){printf (“divide by %g\n”,b);} 
return 1; 

 
 
56 
Контрольные вопросы 
 
1. Опишите ситуации, когда возникают исключения. 
2. В каком месте кода программы может быть сгенерировано исключение? 
3. Перечислите основные достоинства и недостатки блока catch(...) {}. 
4. Что случится, если имеются несколько подходящих для этого типа 
обработчиков? 
5. Каким образом можно ограничить типы исключений, генерируемых 
функцией? 
6. Какой тип указателя надо использовать в блоке catch(), чтобы пере-
хватить любой тип указателей? 
7. Что происходит с автоматическими объектами, которые были созданы
в блоке try, когда этот блок генерирует исключение? 


57 


Достарыңызбен бөлісу:
1   ...   28   29   30   31   32   33   34   35   ...   44




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет