2

作为一点背景知识,我在 Maya 中使用 Python,虽然它实际上并没有自动保存功能,所以我在半年前写了一个脚本在后台运行并每隔一分钟左右自动保存。

当从自动保存脚本中弹出未知错误消息时(这是第一次发生),我正在做某事,经过一些调试后,我意识到这是由于__repr__我当前编写的代码何时失败引起的。我有一个快速的谷歌,但找不到关于这个主题的任何信息,所以我想知道是否有人知道它也会导致下一个命令失败的原因?

我还想如果有一个重要的脚本正在运行并且有人导致该错误(重要的是如果程序停止会使程序崩溃),它可能会造成一些损害,是否有更好的方法来专门在重要脚本中检查它而不是a一般except

例如,以下是我如何重现它:

class TestClass(object):
    def __repr__(self):
        #Do something wrong (in this case format doesn't have enough values)
        return 'TestClass({})'.format()

a = TestClass()

>>> a
# Traceback (most recent call last):
#   File "C:\Program Files\Autodesk\Maya2014\Python\lib\site-packages\maya\utils.py", line 393, in _guiResultHook
#     return formatGuiResult(obj)
#   File "C:\Program Files\Autodesk\Maya2014\Python\lib\site-packages\pymel\internal\startup.py", line 74, in myResultCallback
#     return pprint.pformat(obj)
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 60, in pformat
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 119, in pformat
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 137, in _format
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 230, in _repr
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 242, in format
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 327, in _safe_repr
#   File "<maya console>", line 4, in __repr__
# IndexError: tuple index out of range
# Result:  # 


>>> print 2
# Error: IndexError: file <maya console> line 3: tuple index out of range # 

>>> print 2
2

在 Maya 中>>>,您只需选择要运行的代码位并按回车键(在这种情况下,我只是选择并运行a=TestClass()then a),所以我不知道问题是否也存在于其他解释器中。

4

0 回答 0