Exceptions - How do you make it work like built-in exceptions?

Lie Lie.1296 at gmail.com
Sun Jan 13 15:14:08 CET 2008


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?



More information about the Python-list mailing list