StartprogrammingusingObjectPascal:TryExceptStatement
try except 구문
try
// Start of protected code
CallProc1;
CallProc2;
// End of protected code
except
on e: exception do // Exception handling
begin
Writeln('Error: ' + e.message);
end;
end;
나누기에 대한 예제입니다.
Program ExceptionHandling;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, SysUtils
{ you can add units after this };
var
x, y: Integer;
Res: Double;
begin
try
Write('Input x: ');
Readln(x);
Write('Input y: ');
Readln(y);
Res:= x / y;
Writeln('x / y = ', Res);
except
on e: exception do
begin
Writeln('An error occurred: ', e.message);
end;
end;
Write('Press enter key to close');
Readln;
end.
try 구문에 두개의 섹션이 있습니다. 처음 부분은 try...except 사이에 있는 보호할 필요가 있는 블록이고, 다른 부분은 except .. end 사이에 있습니다.
처음 섹션(try except)에서 무엇인가가 잘못되었다면, 프로그램은 except 섹션 (except..end)으로 갈 것이고 충돌이 일어나는건 아니지만, 적당한 오류 메시지를 표시하고 실행을 계속할 것입니다.
y 값이 0이라면 예외가 발생할 수 있는 줄입니다.
Res:= x / y;
예외가 발생하지 않았다면, except .. end 부분을 실행하지 않을 것입니다.