Das folgende Skript ermöglicht es Ihnen, ein Stück JavaScript-Code auszuführen. Fehler werden vom try/catch-Block abgefangen.Wo CATCH eine AUSNAHME in einem EVAL geworfen wird
try {
var result = eval(script);
} catch (e) {
// do something meaningful
}
Wenn jedoch die Variablen script
zum Beispiel enthält einen AJAX-Aufruf, und der Ajax-Aufruf löst eine Ausnahme (zB in der Erfolgsfunktion), diese Ausnahme wird von dieser try/catch-Block abgefangen werden ...
// 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...
}
Frage: wie kann ich die Ausnahme innerhalb des ajax-Request geworfen zu fangen?
Abgesehen von nicht mit 'eval' überhaupt, auch wenn Sie es nicht verwenden waren, und Sie mussten diese Funktion in einem' try/catch' Block, würde es nicht fangen Ausnahme von der "Erfolg" -Funktion, weil es ein Rückruf ist. Dieser Code wird erst aufgerufen, nachdem Sie Ihren 'try/catch' verlassen haben. –
Ist das nicht das Hinzufügen eines Fehler-Callbacks in der Ajax-Anfrage? – Huangism
@MattBurland 100% einverstanden - aber das ist meine Frage ... – itsame69