Skip to content

API Basic SafeCall fr

Codex edited this page Sep 21, 2026 · 1 revision

Safe Call

ClassicUO • Basic

Safe Call est un préfixe de compatibilité pour un appel ordinaire. Il n’ajoute ni protection contre les erreurs, ni délai maximal, ni verrou, ni exécution en arrière-plan.

Syntaxe exacte

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

Paramètres

  • FunctionName — Nom d’une procédure/fonction existante. Les appels du jeu exigent UO. ; les fonctions intégrées BASIC n’ont pas de préfixe.
  • arguments — Arguments habituels de la fonction choisie. Les parenthèses sont obligatoires. Séparez Safe et Call par des espaces.

Retour

Le résultat original est renvoyé. Unit signifie toujours absence de valeur ; Safe Call ne convertit pas le résultat en true/false.

Comportement

  • L’appel reste dans le flux courant du script, avec les règles habituelles d’arguments, ByRef, retour et annulation. Aucune tâche séparée n’est créée.
  • Les erreurs ne sont pas supprimées. Utilisez Try/Catch ; Safe Call seul n’est pas un gestionnaire d’erreurs.
  • Le préfixe est interdit dans RaiseEvent. Le nouveau code peut normalement appeler directement FunctionName(...). Il s’agit d’une syntaxe de compatibilité du moteur, pas d’une construction VB.NET standard.

Exemples

1. Appeler sa propre fonction

# Sum reçoit x=20 et y=22 et renvoie 42. Safe Call ne change ni le type ni la valeur du résultat.
FUNCTION Sum(x, y)
    RETURN x + y
END FUNCTION
SUB Main()
    RETURN Safe Call Sum(20, 22)
END SUB

Explication des paramètres et du déroulement:

Sum reçoit x=20 et y=22 et renvoie 42. Safe Call ne change ni le type ni la valeur du résultat.

2. Utiliser un résultat intégré dans une expression

# Val reçoit "123" et renvoie un nombre. Ajouter 7 donne 130. Val est intégrée à BASIC : ne pas ajouter UO.
SUB Main()
    VAR text = "123"
    RETURN Safe Call Val(text) + 7
END SUB

Explication des paramètres et du déroulement:

Val reçoit "123" et renvoie un nombre. Ajouter 7 donne 130. Val est intégrée à BASIC : ne pas ajouter UO.

3. Intercepter explicitement une erreur

# Fail lève explicitement une erreur. Catch la reçoit et passe caught à TRUE (1). Sans Try/Catch elle se propagerait. Le code complet de Fail figure ci-dessous.
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

Explication des paramètres et du déroulement:

Fail lève explicitement une erreur. Catch la reçoit et passe caught à TRUE (1). Sans Try/Catch elle se propagerait. Le code complet de Fail figure ci-dessous.

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

Basic

Clone this wiki locally