From: kwatch on
Hi all,

Is it possible to raise exception with custom traceback to specify
file and line?

Situation
=========

I'm creating a certain parser.
I want to report syntax error with the same format as other exception.

Example
=======

parser.py:
-------------------------
1: def parse(filename):
2: if something_is_wrong():
3: linenum = 123
4: raise Exception("syntax error on %s, line %s" % (filename,
linenum))
5:
6: parse('example.file')
-------------------------

current result:
-------------------------
Traceback (most recent call last):
File "/tmp/parser.py", line 6, in <module>
parse('example.file')
File "/tmp/parser.py", line 4, in parse
raise Exception("syntax error on %s, line %s" % (filename,
linenum))
Exception: syntax error on example.file, line 123
-------------------------

my hope is:
-------------------------
Traceback (most recent call last):
File "/tmp/parser.py", line 6, in <module>
parse('example.file')
File "/tmp/parser.py", line 4, in parse
raise Exception("syntax error on %s, line %s" % (filename,
linenum))
File "/tmp/example.file", line 123
foreach item in items # wrong syntax line
Exception: syntax error
-------------------------

I guess I must create dummy traceback data, but I don't know how to do
it.
Could you give me an advice?

Thank you.

--
regards,
makoto kuwata
 | 
Pages: 1
Prev: +Hi+
Next: remote multiprocessing, shared object