Я видел похожие вопросы к этому, но никто из них действительно не обратился к трекбеку. Если у меня такой класс,
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"
То, что я хочу, чтобы мой метод выполнения мог быть выполнен, - если self._then не равен строке "THEN" (в allcaps), тогда я хочу, чтобы он создавал настраиваемое сообщение об ошибке и завершал всю программу, а также не показывая трассировку.
Если ошибка встречается, единственное, что нужно распечатать, будет выглядеть примерно так (я использую 3 в качестве примера, форматирование - это не проблема).
`Syntax Error (Line 3): No -THEN- present in the statement.`
Я не очень придирчивый к тому, что это объект класса исключения, поэтому в этом аспекте нет проблемы. Поскольку я буду использовать это в цикле while, просто, если elif просто повторяет сообщение снова и снова (потому что, очевидно, я не закрываю цикл). Я видел sys.exit(), но также печатает гигантский блок красного текста, если я не использую его правильно. Я не хочу улавливать исключение в моем цикле, потому что в том же модуле есть другие классы, в которых мне нужно реализовать что-то вроде этого.