On Tuesday 15 Dec 2009 14:25:28 Xiao Lan (小兰) wrote:
> On Tue, Dec 15, 2009 at 7:50 PM, Xiao Lan (小兰) <[email protected]>
wrote:
> > I did have tried that, but this will get a runtime error.
>
> Sorry this is exactly a compile-time error.
>
> # cat except.pl
>
> eval { $x=12/0 };
> print "0 div error" if $@;
>
> # perl -c except.pl
> Illegal division by zero at except.pl line 2.
>
> So, can't we capture it at runtime when meeting such error?
>
No, you cannot capture compile-time errors at runtime. You'll need to make
sure your code compiles before you run it. Note that you can capture such
errors if you do perldoc -f require, perldoc -f do (for a filename), string
eval "", etc. at run-time, in which case perl 5 invokes its compiler to
compile some code at run-time.
But for run-time exceptions block eval { ... } should work just as well.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
"Star Trek: We, the Living Dead" - http://shlom.in/st-wtld
Bzr is slower than Subversion in combination with Sourceforge.
( By: http://dazjorz.com/ )
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/