31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Standartin÷s klaidų klas÷s<br />

Standartin÷ C++ biblioteka pateikia klaidų klasių hierarchiją:<br />

exception<br />

|<br />

+----bad_alloc . . . . . . . . . new<br />

|<br />

+----bad_cast. . . . . . . . . . dynamic_cast<br />

|<br />

+----bad_exception<br />

|<br />

+----bad_typeid. . . . . . . . . typeid<br />

|<br />

+----ios_base::failure . . . . . ios_base::clear()<br />

|<br />

+----logic_error<br />

| |<br />

| +----domain_error<br />

| |<br />

| +----invalid_argument<br />

| |<br />

| +----length_error<br />

| |<br />

| +----out_of_range . . . at()<br />

|<br />

+----runtime_error<br />

|<br />

+----overflow_error<br />

|<br />

+----range_error<br />

|<br />

+----underflow_error<br />

Visos standartin÷s klaidų klas÷s iš bazin÷s klas÷s exception paveldi metodą what(),<br />

kuris grąžina klaidos pranešimą. Standartin÷s bibliotekos klaidų klasių hierarchija -<br />

puikus klaidų grupavimo naudojant paveld÷jimą pavyzdys: užtenka gaudyti bazin÷s<br />

klas÷s exception klaidas <strong>ir</strong> kartu pagausime visas paveld÷tas klaidų klases.<br />

Prisiminkime: kad šis mechanizmas veiktų, reikia gaudyti nuorodas į objektą, o ne<br />

patį objektą.<br />

Kartu pamatysime, jog vector klas÷s perkrautas operatorius [] netikrina masyvo<br />

r÷žių, o analogiškas metodas at() meta klaidą, jei elemento indeksas neatitinka<br />

masyvo elementų kiekio:<br />

110

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!