Alex, what output do you get from this program if exception doesn't get raised?
I have just tried and compiled this example on Linux (Ubuntu 11.04). The exception gets raised as expected.
When I enter zero for y, I receive the message "An error occurred: Division by zero", which means that the execution fell into "except" branch of try-except block.
Further, if I change the writeln to Writeln('An error occurred: ', e.ClassName, ' - ', e.message);
(that is, add e.ClassName to output), I can see that EDivByZero got raised (I get: "An error occurred: EDivByZero - Division by zero").