Программалау технологиясы



Pdf көрінісі
бет67/136
Дата08.02.2022
өлшемі2,48 Mb.
#121875
түріПрограмма
1   ...   63   64   65   66   67   68   69   70   ...   136
Байланысты:
Мукашев С Builder

catch
(
int
i)
{ //
int
типті ЕЖ ӛңдеуші код 
}
catch
(
char
* str)
{ // 
char*
типті ЕЖ ӛңдеуші код
 
}
catch
(...)
{ //кез-келген типті ЕЖ ӛңдеуші код

Жаттығу жұмыстары 
 
1-жаттығу.
 
Консолдық қосымшада қарапайым ЕЖ ӛңдеуді орындап кӛру.
 
#include  
#include  
#include  
#pragma hdrstop 
//--------------------------------------------------------------------------- 
#pragma argsused 
int
main() 

double
d = 1.0; 
for
(
int
i=0; i<4; i++) 

try 

cout << endl<< "try-block bastaldi..." <switch
(i) 


{
case
0: 
throw
" goldi laktiru "; // char* типті жолды лақтыру 
case
1: 
throw
5; // int.-бүтінді лақтыру. 
default: 
throw
d; // double –ді лақтыру.


// Келесі оператор ЕЖ байланысты орындалмай
cout<< "Byl try-block-ka bailanisti orindalmaidi" << endl; 
} // try-блоктың соңы 
catch
(
int
i) 
{ // int типті ЕЖ ӛңдеуші код
 
cout << "
Int
laktirildi /thrown /: " << 1 << endl; 

catch
(char* str)
{ //char* типті ЕЖ ӛңдеуші код 
cout << "string-gol laktirildi: " << str << endl; 

catch
(...) { //Кез-келген ЕЖ ӛңдеуші код
 
cout << "kalgan type laktirildi."<< "Program will.terminate." << endl; 
cin.ignore () ; 
return -1; // Программадан шығу 

cout<< "sikldin soni"<< endl; 
} // циклдың соңы. 
cout << "progr soni" << endl; // Бұл операторлар орындалмайды 
себебі, үшінші 
catch
(...) //программаны аяқтап тастайды
return
0;



Бұл мысалда цикл тӛрт рет орындалуы керек. Цикл ішінде 
і
- цикл параметрінің 
мәндеріне сәйкес 
int, char*
және
double
 
типті ЕЖ шақыратын қорғалған блок орналасқан. 
і=0
болғанда
throw
операторы 
char*
 
типті
 
жолды лақтырады, ал оны 
char*
типті екінші 
тұрған ӛңдеуші ұстап алады да, соған сәйкес жазуды шығарады, себебі кодта содан басқа 
ештеңе жазылмаған, тура сол сияқты і=1 болғанда қорғалған блоктағы 
throw
операторы 
int
типті ЕЖ лақтырады, оны бірінші тұрған 
catch(int i)
ӛңдейді. і=2 болғанда
double 
 
типті 
ЕЖ пайда болады, ал оған сәйкес 
catch
қарастырылмаған, бірақ оны кез-келген жағдай үшін 
орындалатын үшінші
 
catch (...)
ұстайды және ондағы кодтағы 
cin.ignore ()
және 
return -1
;
командалары программадан шығуды немесе аяқтауды орындайды, яғни цикл тӛртінші рет 
і=3 үшін орындалып үлгермейді.
Программаның нәтижесі: 
 2-жаттығу.
 
Windows-ға арналған қосымшада қарапайым ЕЖ-ды
1.
жалпы ӛңдеушінің /глобальный обработчик/ кӛмегімен орындап кӛру; 
2.
дербес ӛңдеуші кӛмегімен орындап кӛру.
Дербес ӛңдеушінің жұмысын кӛру үшін жалпы ӛңдеушіні уақытша тоқтата тұру керек, 
ол үшін 
Tools -> Debugger Options
командаларын орындап, пайда болған терезеде
Language 
Exceptions
жапсырмасының
Stop on Delphi Exceptions
және
Stop On C++ Exceptions
немесе 
Integrated debugging
опцияларындағы флажокты алу керек /4.14(А,Б,С)-4.15(А,Б,С) суреттер/ 

Программа мәтіні: 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
TForm1 *Form1; 
//--------------------------------------------------------------------------- 


__fastcall
TForm1::TForm1(TComponent* Owner) 
: TForm(Owner) 


void __fastcall
TForm1::Button1Click(TObject *Sender) 



Достарыңызбен бөлісу:
1   ...   63   64   65   66   67   68   69   70   ...   136




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

    Басты бет