Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Klaidų specifikacija <strong>ir</strong> netik÷tos klaidos<br />
Pagal nutyl÷jimą, funkcija <strong>ir</strong> metodas gali išmesti bet kokią klaidą. Nepakentų<br />
metodo ar funkcijos signatūroje nurodyti, kokias klaidas jis gali išmesti:<br />
void a() { ... }<br />
void b() throw(string, int) { ... }<br />
void c() throw() { ... }<br />
Funkcija a() gali išmesti bet kokią klaidą. Funkcija b() išmes tik int arba string, arba<br />
klaidą, paveld÷tą nuo klas÷s string. Funkcija c() pasižada nemesti jokios klaidos.<br />
Jei funkcija b() išmes kitos rūšies klaidą, arba funkcija c() išmes bet kokią klaidą,<br />
bus iškviesta globali funcija unexpected(), kuri, pagal nutyl÷jimą, iškvies funkciją<br />
terminate.<br />
Analogiškai, kaip <strong>ir</strong> terminate() funkcijos atveju, galime pateikti savo unexpected()<br />
funkciją pasinaudodami set_unexpected():<br />
// unexpected.cpp<br />
void myUnexpected()<br />
{<br />
cout