Skip to content

API Basic SafeCall it

Codex edited this page Sep 21, 2026 · 1 revision

Safe Call

ClassicUO • Basic

Safe Call è un prefisso di compatibilità per una chiamata normale. Non aggiunge protezione dagli errori, timeout, blocchi o esecuzione in background.

Sintassi esatta

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

Parametri

  • FunctionName — Nome di una procedura/funzione esistente. Le chiamate di gioco richiedono UO.; le funzioni BASIC integrate non hanno prefisso.
  • arguments — Argomenti normali della funzione scelta. Le parentesi sono obbligatorie. Usare spazi tra Safe e Call.

Restituisce

Restituisce il risultato originale. Unit continua a indicare nessun valore; Safe Call non converte il risultato in true/false.

Comportamento

  • La chiamata resta nel flusso corrente dello script con le normali regole per argomenti, ByRef, ritorno e annullamento. Non crea un’attività separata.
  • Gli errori non vengono soppressi. Usare Try/Catch; Safe Call da solo non gestisce gli errori.
  • Il prefisso non è consentito in RaiseEvent. Il nuovo codice può normalmente usare direttamente FunctionName(...). È sintassi di compatibilità del motore, non un costrutto VB.NET standard.

Esempi

1. Chiamare una funzione propria

# Sum riceve x=20 e y=22 e restituisce 42. Safe Call non modifica  tipo  numero restituito.
FUNCTION Sum(x, y)
    RETURN x + y
END FUNCTION
SUB Main()
    RETURN Safe Call Sum(20, 22)
END SUB

Spiegazione dei parametri e dell’esecuzione:

Sum riceve x=20 e y=22 e restituisce 42. Safe Call non modifica né tipo né numero restituito.

2. Usare un risultato integrato in un’espressione

# Val riceve "123" e restituisce un numero. Aggiungendo 7 si ottiene 130. Val è integrata in BASIC: non aggiungere UO.
SUB Main()
    VAR text = "123"
    RETURN Safe Call Val(text) + 7
END SUB

Spiegazione dei parametri e dell’esecuzione:

Val riceve "123" e restituisce un numero. Aggiungendo 7 si ottiene 130. Val è integrata in BASIC: non aggiungere UO.

3. Intercettare esplicitamente un errore

# Fail genera esplicitamente un errore. Catch lo riceve e imposta caught su TRUE (1). Senza Try/Catch si propagherebbe. Il codice completo di Fail è riportato sotto.
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

Spiegazione dei parametri e dell’esecuzione:

Fail genera esplicitamente un errore. Catch lo riceve e imposta caught su TRUE (1). Senza Try/Catch si propagherebbe. Il codice completo di Fail è riportato sotto.

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

Basic

Clone this wiki locally