tohil
tohil copied to clipboard
Python exceptions don't preserve class
Not sure if this is the intended behavior
{1:2,4:5}[6]
in regular python will give something like
Traceback (most recent call last):
<traceback here ...>
KeyError: 6
While calling python through tohil will produce
'6' (error in python object call)
from python code executed by tohil
<tracback here ...>
That '6' may be quite confusing, and potentially important information is lost about the exception (the fact that it's a keyerror). Since this behavior works fine and makes sense for some cases like say ZeroDivisionError: division by zero
-> division by zero
, I don't know if it is indeed intended. However, even tcl's own dict get {1 2} 3
won't just say 3
, rather key "3" not known in dictionary
.
Would it be ok to make tohil return the exception class name along the description?
Would a PR changing the behavior to smth like KeyError 6
be accepted? Tests would have to be updated and I don't think backwards compatibility would be possible
We do capture the exception type, but it's socked away in $errorCode
% tohil::eval {[][0]}
list index out of range
% puts $errorCode
PYTHON IndexError {list index out of range}
I'll think a bit on how best we could include this information in a more visible way.