これと同様の質問を見たことがありますが、実際にトラックバックに対処しているものはありません。私がそのようなクラスを持っている場合
class Stop_if_no_then():
def __init__(self, value one, operator, value_two, then, line_or_label, line_number):
self._firstvalue = value_one
self._secondvalue = value_two
self._operator = operator
self._gohere = line_or_label
self._then = then
self._line_number = line_number
def execute(self, OtherClass):
"code comparing the first two values and making changes etc"
execute メソッドで実行できるようにしたいのは、self._then が文字列 "THEN" (すべて大文字) と等しくない場合、カスタム エラー メッセージを発生させ、トレースバックを表示せずにプログラム全体を終了させることです。 .
エラーが発生した場合、印刷する必要があるのは次のようなものだけです (例として 3 を使用しています。フォーマットは問題ありません)。
`Syntax Error (Line 3): No -THEN- present in the statement.`
私はそれが実際に例外クラス オブジェクトであることについてあまりうるさくないので、その面では問題はありません。これをwhileループで使用するので、単純なif、elifはメッセージを何度も繰り返すだけです(明らかにループを閉じていないため)。sys.exit() を見たことがありますが、正しく使用していない限り、赤いテキストの巨大なブロックも出力されます。このようなものを実装する必要がある同じモジュールに他のクラスがあるため、ループで例外をキャッチしたくありません。