Skip to content

API Basic SafeCall uk

Codex edited this page Sep 21, 2026 · 1 revision

Safe Call

ClassicUO • Basic

Safe Call — сумісний префікс звичайного виклику. Він не додає захисту від помилок, тайм-ауту, блокування чи фонового виконання.

Точний синтаксис

Safe Call FunctionName(arguments)
VAR value = Safe Call FunctionName(arguments)

Параметри

  • FunctionName — Ім’я наявної процедури/функції. Ігрові виклики потребують UO.; вбудовані функції BASIC пишуться без префікса.
  • arguments — Звичайні аргументи вибраної функції. Дужки обов’язкові. Між Safe і Call використовуйте пробіли.

Повертає

Повертається початковий результат функції. Unit залишається відсутністю значення; Safe Call не перетворює результат на true/false.

Поведінка

  • Виконання залишається в поточному потоці скрипту зі звичайними правилами аргументів, ByRef, повернення та зупинки. Окреме завдання не створюється.
  • Помилки не пригнічуються. Обробляйте їх через Try/Catch; Safe Call сам по собі не є обробником помилок.
  • У RaiseEvent цей префікс заборонено. У новому коді зазвичай достатньо FunctionName(...). Це синтаксис сумісності цього рушія, а не стандартна конструкція VB.NET.

Приклади

1. Викликати власну функцію

# Sum отримує x=20 і y=22 та повертає 42. Safe Call не змінює тип результату чи число.
FUNCTION Sum(x, y)
    RETURN x + y
END FUNCTION
SUB Main()
    RETURN Safe Call Sum(20, 22)
END SUB

Пояснення параметрів і виконання:

Sum отримує x=20 і y=22 та повертає 42. Safe Call не змінює тип результату чи число.

2. Використати результат вбудованої функції у виразі

# Val отримує "123" і повертає число. Додавання 7 дає 130. Valвбудована функція BASIC, тому UO. не додається.
SUB Main()
    VAR text = "123"
    RETURN Safe Call Val(text) + 7
END SUB

Пояснення параметрів і виконання:

Val отримує "123" і повертає число. Додавання 7 дає 130. Val — вбудована функція BASIC, тому UO. не додається.

3. Явно перехопити помилку

# Fail явно створює помилку. Вона доходить до Catch, де caught стає TRUE (1). Без Try/Catch помилка поширювалася б далі. Повний код Fail наведено нижче.
FUNCTION Fail()
    THROW "sample error"
END FUNCTION
SUB Main()
    VAR caught = FALSE
    TRY
        VAR value = Safe Call Fail()
    CATCH problem
        caught = TRUE
    END TRY
    RETURN caught
END SUB

Пояснення параметрів і виконання:

Fail явно створює помилку. Вона доходить до Catch, де caught стає TRUE (1). Без Try/Catch помилка поширювалася б далі. Повний код Fail наведено нижче.

ru · en · uk · de · fr · it · es · zh-tw · ja · ko

Basic

Clone this wiki locally