Skip to content

API Basic SafeCall de

Codex edited this page Sep 21, 2026 · 1 revision

Safe Call

ClassicUO • Basic

Safe Call ist ein Kompatibilitätspräfix für einen normalen Aufruf. Es fügt weder Fehlerschutz noch Zeitlimit, Sperre oder Hintergrundausführung hinzu.

Genaue Syntax

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

Parameter

  • FunctionName — Name einer vorhandenen Prozedur/Funktion. Spielaufrufe benötigen UO.; eingebaute BASIC-Funktionen haben kein Präfix.
  • arguments — Normale Argumente der gewählten Funktion. Klammern sind erforderlich. Zwischen Safe und Call stehen Leerzeichen.

Rückgabewert

Das ursprüngliche Funktionsergebnis wird zurückgegeben. Unit bedeutet weiterhin kein Wert; Safe Call wandelt das Ergebnis nicht in true/false um.

Verhalten

  • Der Aufruf bleibt im aktuellen Skriptablauf mit normalen Regeln für Argumente, ByRef, Rückgabe und Abbruch. Es entsteht keine separate Aufgabe.
  • Fehler werden nicht unterdrückt. Verwenden Sie Try/Catch; Safe Call allein ist keine Fehlerbehandlung.
  • In RaiseEvent ist das Präfix unzulässig. Neuer Code kann normalerweise direkt FunctionName(...) verwenden. Dies ist Kompatibilitätssyntax dieser Engine, kein Standardkonstrukt von VB.NET.

Beispiele

1. Eigene Funktion aufrufen

# Sum erhält x=20 und y=22 und liefert 42. Safe Call verändert weder Ergebnistyp noch Zahl.
FUNCTION Sum(x, y)
    RETURN x + y
END FUNCTION
SUB Main()
    RETURN Safe Call Sum(20, 22)
END SUB

Erläuterung der Parameter und Ausführung:

Sum erhält x=20 und y=22 und liefert 42. Safe Call verändert weder Ergebnistyp noch Zahl.

2. Ergebnis einer eingebauten Funktion im Ausdruck nutzen

# Val erhält "123" und liefert eine Zahl. Plus 7 ergibt 130. Val ist in BASIC eingebaut und benötigt kein UO.
SUB Main()
    VAR text = "123"
    RETURN Safe Call Val(text) + 7
END SUB

Erläuterung der Parameter und Ausführung:

Val erhält "123" und liefert eine Zahl. Plus 7 ergibt 130. Val ist in BASIC eingebaut und benötigt kein UO.

3. Fehler ausdrücklich abfangen

# Fail löst ausdrücklich einen Fehler aus. Catch fängt ihn ab und setzt caught auf TRUE (1). Ohne Try/Catch würde er weitergegeben. Der vollständige Code von Fail steht unten.
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

Erläuterung der Parameter und Ausführung:

Fail löst ausdrücklich einen Fehler aus. Catch fängt ihn ab und setzt caught auf TRUE (1). Ohne Try/Catch würde er weitergegeben. Der vollständige Code von Fail steht unten.

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

Basic

Clone this wiki locally