Skip to content

API Basic SafeCall es

Codex edited this page Sep 21, 2026 · 1 revision

Safe Call

ClassicUO • Basic

Safe Call es un prefijo de compatibilidad para una llamada normal. No añade protección contra errores, tiempo límite, bloqueo ni ejecución en segundo plano.

Sintaxis exacta

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

Parámetros

  • FunctionName — Nombre de una función/procedimiento existente. Las llamadas del juego requieren UO.; las funciones integradas BASIC no llevan prefijo.
  • arguments — Argumentos normales de la función elegida. Los paréntesis son obligatorios. Use espacios entre Safe y Call.

Devuelve

Se devuelve el resultado original. Unit sigue significando ausencia de valor; Safe Call no convierte el resultado en true/false.

Comportamiento

  • La llamada permanece en el flujo actual del script con las reglas normales de argumentos, ByRef, retorno y cancelación. No se crea una tarea aparte.
  • No se suprimen los errores. Use Try/Catch; Safe Call por sí solo no es un controlador de errores.
  • El prefijo no se permite en RaiseEvent. El código nuevo normalmente puede usar FunctionName(...) directamente. Es sintaxis de compatibilidad del motor, no una construcción estándar de VB.NET.

Ejemplos

1. Llamar a una función propia

# Sum recibe x=20 e y=22 y devuelve 42. Safe Call no cambia el tipo ni el número devuelto.
FUNCTION Sum(x, y)
    RETURN x + y
END FUNCTION
SUB Main()
    RETURN Safe Call Sum(20, 22)
END SUB

Explicación de los parámetros y la ejecución:

Sum recibe x=20 e y=22 y devuelve 42. Safe Call no cambia el tipo ni el número devuelto.

2. Usar un resultado integrado en una expresión

# Val recibe "123" y devuelve un número. Al añadir 7 resulta 130. Val está integrada en BASIC: no añada UO.
SUB Main()
    VAR text = "123"
    RETURN Safe Call Val(text) + 7
END SUB

Explicación de los parámetros y la ejecución:

Val recibe "123" y devuelve un número. Al añadir 7 resulta 130. Val está integrada en BASIC: no añada UO.

3. Capturar un error explícitamente

# Fail lanza un error explícito. Catch lo recibe y establece caught en TRUE (1). Sin Try/Catch se propagaría. El código completo de Fail aparece debajo.
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

Explicación de los parámetros y la ejecución:

Fail lanza un error explícito. Catch lo recibe y establece caught en TRUE (1). Sin Try/Catch se propagaría. El código completo de Fail aparece debajo.

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

Basic

Clone this wiki locally