[Tutor] Trapping Interpreter errors as a string
Tue, 27 Feb 2001 08:10:09 +0100
On Mon, Feb 26, 2001 at 06:33:36PM -0900, Tim Johnson wrote:
> Am looking for a way to trap python errors as a string.
> A quick example would be like the disarm function in the rebol language.
> To be more specific:
> Let's say I had a simple cgi program to first sent the the mime-type
> print "Content-type: text/html\n"
> then I do something dumb, like
> integer = string.atoi("duh")
> Guido will then say:
> Traceback (innermost last):
> File "<stdin>", line 1, in ?
> ValueError: invalid literal for atoi(): duh
> To reduce this inquiry:
> 1)Can that error message be returned to the user as a string.
> 2)Is there a specific numeric error code attached to the error message.
> i.e. ValueError = ?
> Then the programmer could gracefully complete the output form with
> the error message within it.
In Python, you would usually make something like this:
x = string.atoi("duh")
except ValueError, problem:
This will print "invalid literal for int(): duh" and then continue. You put
whatever code you need to handle the exception in the except: block. You can
look at sys.exc_info for more information on the current exception, or
inspect the traceback and/or print it with functions from the traceback
If you don't know about exceptions yet, read chapter 8 of the Tutorial.