Следующий скрипт позволяет запустить фрагмент кода javascript. Ошибки перехватываются блоком try/catch.
try {
var result = eval(script);
} catch (e) {
// do something meaningful
}
Однако, если переменная script
содержит, например, вызов AJAX, и этот вызов ajax вызывает исключение (например, в функции успеха), это исключение НЕ будет перехвачено этим блоком try/catch...
// 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...
}
Вопрос: как я могу поймать исключение, созданное в запросе ajax?
eval
вообще не используется, даже если вы его не используете и у вас есть эта функция внутри блокаtry/catch
, она не перехватит исключение из функцииsuccess
, потому что это обратный вызов. Этот код не будет вызываться до тех пор, пока вы не выйдете из своегоtry/catch
- person Matt Burland   schedule 01.06.2017async: false
. api.jquery.com/jquery.ajax - person idream1nC0de   schedule 01.06.2017