xpcall

  boolean, vararg xpcall( function func, function errorCallback, ... )

Açıklama

İlk fonksiyonu çağırmayı dener. Eğer çalıştırma başarılı olursa, true değerini ve ardından fonksiyonun döndürdüğü değerleri döndürür. Eğer çalıştırma başarısız olursa, false değerini döndürür ve ikinci fonksiyon hata mesajıyla birlikte çağrılır.

pcall'dan farklı olarak, yığın (stack) çözülmez ve bu nedenle debug kütüphanesi ile yığın analizi için kullanılabilir.

Bu, motor tarafından çağrılan hook'lardan gelen hataları durduramaz.

Hata Takipçisi: 2036
Bu, Error ve ErrorNoHalt'un (ve ayrıca include'un) sunucuya hata mesajları göndermesini (eğer istemci tarafında çağrılırsa) veya GM:OnLuaError hook'unu çağırmasını engellemez. Döndürülen başarı boolean'ı her zaman true döndürecektir ve bu nedenle hata mesajının döndürülmesini alamazsınız. error bu davranışları sergilemez.

Hata Takipçisi: 2498

Argümanlar

1 function func
Başlangıçta çağrılacak fonksiyon.
2 function errorCallback
İlkinin çalıştırılması başarısız olursa çağrılacak olan fonksiyondur; hata mesajı bir string olarak aktarılır.

Bu geri çağrıdan bir error() fırlatamazsınız: bunun hiçbir etkisi olmaz (geri çağrıyı durdurmak dahil).

3 vararg arguments
İlk fonksiyona aktarılacak argümanlar.

Döndürülen Değerler

1 boolean
Çalıştırmanın durumu; başarı için true, başarısızlık için false.
2 vararg
Çalıştırma başarılı olduysa ilk fonksiyonun döndürdüğü değerler, aksi takdirde hata geri çağrısının ilk döndürdüğü değer.

Örnek

Bir hatayı yakalamak için xpcall kullanmak.

local function test() aisj() end local function catch( err ) print( "HATA: ", err ) end print( "Çıktı: ", xpcall( test, catch ) )
Çıktı:
HATA: lua/wiki/xpcall_example.lua:2: attempt to call global 'aisj' (a nil value) Çıktı: false nil

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord