-- -*- Mode: Ada; fonts: CPTFONT,HL12I,CPTFONTB -*- -- 1image0.1ada0 1rob0 1840-1040-118 0-- 1based0 1on0 1test0.1ada0 1rob0 1840-1010-112 0-- -- 1try0 1to0 1convert0 1a0 1string0 1character0 1to0 1an0 1integer 2with0 TEXT_IO; 2use0 TEXT_IO; 2package0 INT_IO 2is0 2new0 INTEGER_IO(INTEGER); 2with0 INT_IO; 2use0 INT_IO; 2with0 TEXT_IO; 2use0 TEXT_IO; 2procedure0 TEST 2is 0 INPUT_STRING : STRING (1..5) := "a6cde"; INDEX : INTEGER :=1; QVAL : INTEGER :=2; 2begin 0 2begin 0 QVAL := INTEGER'(INPUT_STRING(INDEX)); PUT ("error - constraint_error not raised"); 2exception 0 2when0 CONSTRAINT_ERROR => PUT ("Constraint error raised 'a' isn't an integer"); NEW_LINE; 2end0; QVAL := INTEGER'(INPUT_STRING(INDEX)); PUT ("Six is "); PUT (QVAL); NEW_LINE; 2begin 0 QVAL := INTEGER'VALUE(CHARACTER'IMAGE(INPUT_STRING(INDEX))); PUT ("error - constraint_error not raised"); 2exception 0 2when0 CONSTRAINT_ERROR => PUT ("Constraint error raised - the string a isn't a number"); NEW_LINE; 2end0; QVAL := INTEGER'VALUE(CHARACTER'IMAGE(INPUT_STRING(2))); PUT ("Six is "); PUT (QVAL); NEW_LINE; QVAL := CHARACTER'POS(INPUT_STRING(INDEX)); PUT ("pos of a is "); PUT (QVAL); NEW_LINE; -- 1should0 1raise0 1constraint0 1error 0 QVAL := INTEGER'VALUE(STRING(INPUT_STRING(INDEX))); PUT ("error -- constraint_error not raised"); 2exception 0 2when0 CONSTRAINT_ERROR => PUT ("Constraint error raised"); 2end0 TEST;