# xpcall

- **Ortam:** İstemci, Sunucu, Menü
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Global.xpcall
- **Çeviri tarihi:** 2025-09-08

```lua
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](https://gmod.tr/wiki/Global.pcall)'dan farklı olarak, yığın (stack) çözülmez ve bu nedenle [debug](https://gmod.tr/wiki/debug) kütüphanesi ile yığın analizi için kullanılabilir.

> **HATA:** Bu, motor tarafından çağrılan hook'lardan gelen hataları durduramaz.
> Hata Takipçisi: [2036](https://github.com/Facepunch/garrysmod-issues/issues/2036)

> **HATA:** Bu, [Error](https://wiki.facepunch.com/gmod/Global.Error) ve [ErrorNoHalt](https://gmod.tr/wiki/Global.ErrorNoHalt)'un (ve ayrıca [include](https://gmod.tr/wiki/Global.include)'un) sunucuya hata mesajları göndermesini (eğer istemci tarafında çağrılırsa) veya [GM:OnLuaError](https://gmod.tr/wiki/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](https://wiki.facepunch.com/gmod/Global.error) bu davranışları sergilemez.
> Hata Takipçisi: [2498](https://github.com/Facepunch/garrysmod-issues/issues/2498)

## Argümanlar

1. [function](https://gmod.tr/wiki/function) **func**: Başlangıçta çağrılacak fonksiyon.
2. [function](https://gmod.tr/wiki/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](https://wiki.facepunch.com/gmod/Global.error)() fırlatamazsınız: bunun hiçbir etkisi olmaz (geri çağrıyı durdurmak dahil).
3. [vararg](https://gmod.tr/wiki/vararg) **arguments**: İlk fonksiyona aktarılacak argümanlar.

## Döndürülen Değerler

1. [boolean](https://gmod.tr/wiki/boolean): Çalıştırmanın durumu; başarı için `true`, başarısızlık için `false`.
2. [vararg](https://gmod.tr/wiki/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.

```lua
local function test()
	aisj()
end

local function catch( err )
	print( "HATA: ", err )
end

print( "Çıktı: ", xpcall( test, catch ) )
```

**Çıktı:**

```lua
HATA: 	lua/wiki/xpcall_example.lua:2: attempt to call global 'aisj' (a nil value)
Çıktı:	false 	nil
```

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Global.xpcall
