Excepciones
Se manejan dentro de bloques try...except. Por ejemplo,
try
X := Y/Z;
except
on EZeroDivide do HandleZeroDivide;
end;
La sintaxis de un bloque try...except statement es:
try statements except exceptionBlock end
donde statements es una secuencia de instrucciones y exceptionBlock es otra secuencia de instrucciones o una secuencia de “exception handlers”, seguida opcionalmente por una instrucción else.
Un “exception handler” tiene la forma:
on [identifier:] type do statement
type es un tipo usado para representar excepciones (como EZeroDivide, EOverflow, etc.) Un bloque try...except ejecuta las instrucciones de la lista inicial. Si no ocurre ninguna excepción, el exceptionBlock se ignora y el control pasa a la siguiente instrucción. Si ocurre una excepción al ejecutar la lista inicial, se intenta manejarla de acuerdo a lo especificado en el exceptionBlock.