Обработка ошибок

Материал из K3-Macro
(перенаправлено с «Ошибка»)

Обработка ошибок осуществляется перехватом ошибки и передачи управления.

OnError <Label>

Оператор OnError передает управление на метку <Label> при возникновении аварийной ситуации, то есть когда команда завершилась аварийно, команда завершилась преждевременно или произошел отказ от ввода по клавише Esc.

OnEmpty <Label>

Оператор OnEmpty передает управление на метку <Label> при возникновении ситуации, когда команда завершилась преждевременно.

OffError

Действие оператора перехвата ошибок начинается с момента выполнения оператора и до момента завершения макропрограммы или до выполнения оператора OffError. Операторы перехвата ошибок могут быть вложенными. Однако, оператор OffError отключает перехват ошибок.

OnlyInK3 processed.png

Применимо только в программах на макроязыке к3. И не используется в модулях на python

Help 48.png

Для языка Button2 py processed.pngpython существуют собственные конструкции try: ... except: ... else: ... fynally: ...

>>> def divide(x, y):
...     try:
...         result = x / y
...     except ZeroDivisionError:
...         print("Деление на ноль!")
...     else:
...         print("Результат", result)
...     finally:
...         print("Выполнение блока finally.")
...
>>> divide(2, 1)
Результат 2.0
Выполнение блока finally.
>>> divide(2, 0)
Деление на ноль!
Выполнение блока finally.
>>> divide("2", "1")
Выполнение блока finally.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in divide
TypeError: unsupported operand type(s) for /: 'str' and 'str'

Макро | Переменные и выражения | Присваивание значений переменной | Оператор условный | Оператор перехода | Оператор вызова подпрограммы | Оператор выхода в вызывающую макропрограмму | Оператор выхода в интерактивный режим | Оператор вызова макропрограммы | Оператор получения параметров в макропрограмме | Обработка ошибок | Команды системы