Chris Angelico <> wrote:

> >> Yes and no. Syntax errors are detected when the script is compiled, so
> >> you can't do something like this:
> >
> > You're right, except that Python is never compiled, it was just checked
> > for syntax error before interpreting code.
> It's compiled.

Using this function, the code is "compiled".
I do not think this function is often used and most python project
simply use the interpreter (which do a small translation into byte-code
to be faster and check syntax error before running interpretation).

> >> However, you can catch this at some form of outer level. If you're
> >> using exec/eval to run the code, you can guard that:
> >
> > Your solution are OK, but that's not very "pythonic".
> >
> > Python was not design to be used in such a way (intercepting syntax
> > error). There was hack to made somthing like requested but that only a
> > hack and should not be used in real world.
> The error is raised as an exception, which means it is most definitely
> meant to be able to be caught.

Using compile() function yes.

So yes there is a way to check "syntax error" before executing code
(using compile function and exceptions) but it was not standard, nor
widely used... It was still a hack for me, but perhaps i misunderstood
or misinterpret.

Pierre-Alain Dorange               Moof <>

Ce message est sous licence Creative Commons "by-nc-sa-2.0"

Reply via email to