Python索引器被抛出,即使它';除了两个街区外,它在两个街区内
这可能是一个非常愚蠢的错误,但遗憾的是,我对Python还比较陌生,我发现这个错误令人困惑,因此希望您能提供帮助。这可能是一个相对简单的错误,但到目前为止,网站上的搜索并没有解决这个问题。以下是解决所有这些问题的方法:Python索引器被抛出,即使它';除了两个街区外,它在两个街区内,python,python-2.7,exception,error-handling,runtimeexception,Python,Python 2.7,Exception,Error Handling,Runtimeexception,这可能是一个非常愚蠢的错误,但遗憾的是,我对Python还比较陌生,我发现这个错误令人困惑,因此希望您能提供帮助。这可能是一个相对简单的错误,但到目前为止,网站上的搜索并没有解决这个问题。以下是解决所有这些问题的方法: def loggable(func): def log(self, *args, **kwargs): try: return func(self, *args, **kwargs) except Exception
def loggable(func):
def log(self, *args, **kwargs):
try:
return func(self, *args, **kwargs)
except Exception as ex:
import traceback
import sys
tb = sys.exc_info()[2]
exception_string = traceback.format_exception(type(ex), ex, tb)
[self.error_log.appendText(item) for item in exception_string]
m = qg.QMessageBox()
m.setIcon(m.Warning)
m.setText(ex.args[0])
try:
m.setInformativeText(str(ex.args[1]))
except IndexError:
pass
try:
m.setDetailedText(str(ex.args[2]))
except IndexError:
pass
m.exec_()
raise
return log
这一行的例外
m.setDetailedText(str(ex.args[2]))
即使它不是在一个而是在两个挡块内也会被抛出。我正在努力找出问题所在,如果有任何帮助,我将不胜感激
以下是回溯:
Traceback (most recent call last):
File "/home/skylion/Git/popupcad/popupcad/guis/editor.py", line 335, in <lambda>
popupcad.manufacturing.joint_operation2.JointOperation2)}})
File "/home/skylion/Git/popupcad/popupcad/guis/editor.py", line 51, in log
m.setDetailedText(str(ex.args[2]))
IndexError: tuple index out of range
回溯(最近一次呼叫最后一次):
文件“/home/skylion/Git/popupcad/popupcad/guis/editor.py”,第335行,在
popupcad.制造.联合操作2.联合操作2)}
文件“/home/skylion/Git/popupcad/popupcad/guis/editor.py”,第51行,在日志中
m、 setDetailedText(str(ex.args[2]))
索引器错误:元组索引超出范围
外部异常处理程序的最后一行是raise
,它将重新调用最后一个异常,该异常显然试图调用m.setDetailedText
。这失败了,但它的异常现在是最新的,当您在最后点击raise
时,它会被重新引发
要引发原始异常,请将其从
raise
更改为raise ex
外部异常处理程序的最后一行是raise
,它将重新引发最后一个异常,该异常显然正试图调用m.setDetailedText
。这失败了,但它的异常现在是最新的,当您在最后点击raise
时,它会被重新引发
要引发原始异常,请将其从
raise
更改为raise ex
,根据文档,您的上一条语句raise
将重新引发以前的异常
根据文档,您的上一个语句
raise
将重新引发以前的异常
回溯在哪里?@user3100115刚刚添加了它。抱歉,回溯在哪里?@user3100115刚刚添加了它。对不起