Handling Errors in Callbacks
What happens when a line inside a callback fails, and what does not.
Error di dalam callback
Kegagalan runtime pada satu baris (argumen native ditolak, resource tidak tersedia, panic di panggilan engine) akan dicatat lalu dilewati. Sisa callback tetap berjalan dan server tetap memproses paket pemain itu, jadi satu baris bermasalah di player::connect tidak bisa membekukan atau memutus pemain.
knight
player::connect() {
state[playerid] = 1;
SetPlayerPos(playerid, 0.0 / 0.0, 0.0, 0.0); // ditolak engine
state[playerid] = 2; // tetap jalan
SendClientMessage(playerid, "state={at(state, playerid)}");
};
Log menampilkan script error at LINE:COL: .... Perbaiki barisnya, tetapi jangan khawatir soal crash atau client macet: hanya statement itu yang dilewati.
Tip
return, break, dan continue tetap bekerja normal; hanya error sungguhan yang ditahan.