Image

Image_winnie wrote in Imageru_python

Уточнение диагностики ошибок.

Есть какой-то неприятный код, в котором велика вероятность каких-либо внешних ошибок, кидающих исключения.

Хочется добавить к этому коду дополнительную диагностику, так как при использовании приятней иметь ошибку вида
"не могу загрузить файл 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