如果我有这个功能,
def parse_datetime(s, **kwargs):
""" Converts a time-string into a valid
:py:class:`~datetime.datetime.DateTime` object.
Args:
s (str): string to be formatted.
``**kwargs`` is passed directly to :func:`.dateutil_parser`.
Returns:
:py:class:`~datetime.datetime.DateTime`
"""
if not s:
return None
try:
ret = dateutil_parser(s, **kwargs)
except (OverflowError, TypeError, ValueError) as e:
logger.exception(e, exc_info=True)
raise SyncthingError(*e.args)
return ret
将捕获的异常提升为公共库异常的最正确方法是什么? (SyncthingError(Exception)
)现在写的方式无效。
答案 0 :(得分:3)
在Python 3中,可以链接异常,
raise SyncthingError("parsing error") from e
将生成一个堆栈跟踪,其中包含原始异常的详细信息。
raise statement文档中有一些示例。
答案 1 :(得分:0)
只要公共库异常的构造使用Error或Exception,您就应该能够引发它。例如:
Class LibraryException(Exception)...
Class LibraryException(Error)...