Röviden az Ada 2005 kivételkezeléséről:
Most már lehet olyan kivételt dobni, aminek van szöveges megjegyzése:
amely pont a következővel egyezik meg:
Az Exception_Identity Ada 95 esetén Constraint_Error-t dobott, ha egy Null_Occurance paramétert kapott, Ada 2005-ben viszont már a várt Null_Id értéket adja vissza. Az Ada 95 bevezette a moduló típust, az Ada 2005-ben hozzáadták a Mod attribútumot is (pl. szegmens és offszet számításnál):
Ezen változásoktól eltekintve a kivételek szintaxisa, definiálása, kiváltása, kezelése és terjedése az Ada 95-höz hasonló. A linkeket lásd lejjebb.
Kivételek deklarálásának a szintaxisa a következő:
exception_declaration ::= defining_identifier_list : exception;
Kivételek kezelésének a szintaxisa a következő:
handled_sequence_of_statements ::= sequence_of_statements
[exception
exception_handler
{exception_handler}]
exception_handler ::= when [choice_parameter_specification:] exception_choice {| exception_choice} => sequence_of_statements
choice_parameter_specification ::= defining_identifier
exception_choice ::= exception_name | others
Kivételek kiváltásának a szintaxisa a következő:
raise_statement ::= raise;
| raise exception_name [with string_expression];
Példák:
Részleteket itt találunk:
Ada 2005-ben (úgy mint az Ada 95 esetében) vannak előre definiált kivételek, de létre lehet hozni új, saját kivételeket is. Erre vonatkozó példa olvasható a Szintaxis részben, vagy ezen a linken. Az Ada 95 esetében megismert Constraint_Error, Program_Error, Storage_Error, Tasking_Error mellett vannak még egyéb, a nyelv által definiált kivételek is. Ezekről bővebben itt lehet olvasni:
A kiváltásra vonatkozó szintaxis feljebb olvasható. Lássunk néhány példát kivételek kiváltására:
További információ itt található:
A kezelésre vonatkozó szintaxis feljebb olvasható. Lássunk egy példát kivételek lekezelésére:
További információ a kivételek kezelésével kapcsolatban itt található:
Kivételek terjedése hasonló az Ada 95 esetében megismertekhez. Ezzel kapcsolatban bővebb információ itt található:
Az előző szekciók egyikébe sem illő dolgokról illetve pédákról a következő linkeken lehet olvasni: