Skip to content

API Basic SafeCall ko

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 — 이미 존재하는 프로시저/함수 이름입니다. 게임 API에는 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