On Jan 13, 4:14 pm, Lie <[EMAIL PROTECTED]> wrote:
> A built-in exceptions, when raised, would print traceback that points
> out the offending code, like this:
>
> Traceback (most recent call last):
> File "F:\dir\code.py", line 43, in <module>
> a = 1/0 <<<---
> ZeroDivisionError: integer division or modulo by zero
>
> a user-made exception, when raised, would print traceback that points
> out the code that raises the exception
>
> Traceback (most recent call last):
> File "F:\dir\code.py", line 48, in <module>
> raise SomeException('Some Exception Message') <<<---
> SomeException: Some Exception Message
>
> which is generally of little use (yeah, it's possible to trace the
> code from the line number, but sometimes it might not be that easy,
> cause the line number is (again) the line number for the raising code
> instead of the offending code)
>
> The sample exception was generated from this code:
> ####
> class SomeException(Exception):
> pass
>
> try:
> a = 1/0
> except:
> raise SomeException('Some Exception Message')
> ####
>
> Is it possible to make the user-made exception points out the
> offending code?
from sys import exc_info
try:
a = 1/0
except:
type, value, traceback = exc_info()
raise SomeException(type)
--
http://mail.python.org/mailman/listinfo/python-list