Уточнение диагностики ошибок.
Есть какой-то неприятный код, в котором велика вероятность каких-либо внешних ошибок, кидающих исключения.
Хочется добавить к этому коду дополнительную диагностику, так как при использовании приятней иметь ошибку вида
"не могу загрузить файл foobar.xml ( не могу сконвертировать что-то во Float )"
чем
"не могу сконвертировать что-то во Float" и хрен его знает, в каком из файлов ошибка (не смотря на то, что имеется полностью traceback, выявить виновника это не поможет).
Я это сделал как внизу, но при этом теряется traceback вложенного исключения.
Можно конечно загнать в сообщение об ошибке этот traceback, но это как-то странно.
Как в питоне полагается уточнять диагностическое сообщение об ошике, не меняя исключения?
Я придумал ещё вот такой способ, насколько он "правильный"?
Хочется добавить к этому коду дополнительную диагностику, так как при использовании приятней иметь ошибку вида
"не могу загрузить файл foobar.xml ( не могу сконвертировать что-то во Float )"
чем
"не могу сконвертировать что-то во Float" и хрен его знает, в каком из файлов ошибка (не смотря на то, что имеется полностью traceback, выявить виновника это не поможет).
Я это сделал как внизу, но при этом теряется traceback вложенного исключения.
def Load(self, filename):
try:
#....
except Exception, e:
raise Exception, "can't load '%s' (%s)" % (filename, e)Можно конечно загнать в сообщение об ошибке этот traceback, но это как-то странно.
Как в питоне полагается уточнять диагностическое сообщение об ошике, не меняя исключения?
Я придумал ещё вот такой способ, насколько он "правильный"?
except Exception, e:
e.msg = "can't load '%s' (%s)" % (filename, e)
raise 