少し背景として、私は Maya で Python を使用していますが、実際には自動保存機能はありません。そのため、半年前にバックグラウンドで実行して毎分自動保存するスクリプトを作成しました。
自動保存スクリプトから不明なエラー メッセージが表示されたとき (これが初めて発生したとき)、何かに取り組んでいました。少しデバッグした後、__repr__
現在書いているコードで失敗したことが原因であることに気付きました。私は簡単なグーグルを持っていましたが、件名に関する情報を見つけることができなかったので、次のコマンドも失敗する理由を誰かが知っているのだろうか?
また、重要なスクリプトが実行されていて、誰かがそのエラーを引き起こした場合(プログラムが停止するとプログラムがクラッシュするため、重要です)、何らかの損害を与える可能性があると思います。一般的な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 では、代わりに、>>>
実行するコードを選択して Enter キーを押すだけなので (この場合は選択して実行するだけですa=TestClass()
) a
、問題が他のインタープリターにもあるのかどうかはわかりません。