Skrip berikut memungkinkan Anda menjalankan sepotong kode javascript. Kesalahan ditangkap oleh blok coba/tangkap.
try {
var result = eval(script);
} catch (e) {
// do something meaningful
}
Namun, jika variabel script
berisi misalnya panggilan AJAX, dan panggilan ajax ini memunculkan pengecualian (misalnya dalam fungsi sukses), pengecualian ini TIDAK akan ditangkap oleh blok coba/tangkap ini...
// execute an AJAX request
var script = '$.ajax(url:"/somewhere", success: function(){throw new MyException('testexception')})';
try {
var result = eval(script);
} catch (e) {
// will not be triggered...
}
Pertanyaan: bagaimana cara menangkap pengecualian yang diberikan dalam permintaan ajax?
eval
sama sekali, meskipun Anda tidak menggunakannya dan Anda memiliki fungsi tersebut di dalam bloktry/catch
, fungsi tersebut tidak akan menangkap pengecualian dari fungsisuccess
karena ini adalah panggilan balik. Kode itu tidak akan dipanggil sampai Anda keluar daritry/catch
- person Matt Burland   schedule 01.06.2017async: false
. api.jquery.com/jquery.ajax - person idream1nC0de   schedule 01.06.2017