Change exception wrapper to detect and raise AttributeError

This commit is contained in:
Jason Paryani
2014-01-14 09:05:46 -08:00
parent 7a4ae96c81
commit b0a7128230

View File

@@ -240,17 +240,21 @@ cdef public object wrap_kj_exception(capnp.Exception & exception):
cdef public object wrap_kj_exception_for_reraise(capnp.Exception & exception):
wrapper = _KjExceptionWrapper()._init(exception)
wrapper_msg = str(wrapper)
nature = wrapper.nature
if wrapper.nature == 'PRECONDITION':
return ValueError(str(wrapper))
if 'has no such member' in wrapper_msg:
return AttributeError(wrapper_msg)
else:
return ValueError(wrapper_msg)
# elif wrapper.nature == 'LOCAL_BUG':
# return ValueError(str(wrapper))
if wrapper.nature == 'OS_ERROR':
return OSError(str(wrapper))
return OSError(wrapper_msg)
if wrapper.nature == 'NETWORK_FAILURE':
return IOError(str(wrapper))
return IOError(wrapper_msg)
ret = KjException(wrapper=wrapper)