Aus irgendeinem Grund gibt mir dieser Code einen nicht abgefangenen Ausnahmefehler. Es scheint, dass der catch-Block den Fehler nicht abfängt. Sind try-catch-Blöcke so skaliert, dass ich keinen Fehler in einer verschachtelten Funktion ausgeben kann und dann erwarte, dass sie von einer Fanganweisung erfasst wird, die höher in der Kette liegt? Einige der sensiblen Daten in der Anwendung, in der ich arbeite, wurden entfernt, aber es wurde erwartet, dass leadInfo [0/1] eine alphanumerische Zeichenfolge mit 32 Zeichen ist, die ich aus URL-Parametern abrufe.Catch-Anweisung fängt keinen geworfenen Fehler
Das hier zugrunde liegende Problem ist, dass mein AJAX-Aufruf einen Fehler von der API zurückgibt und dieser Fehler nicht ordnungsgemäß in der Anwendung behandelt wird. Daher die Notwendigkeit für die throw-Anweisung. Der AJAX-Aufruf wird ordnungsgemäß abgeschlossen und gibt ein JSON-Objekt zurück, das die E-Mail-Adresse nicht als Eigenschaft enthält. Daher muss ich dies so behandeln, dass die Seite entsprechend geändert wird.
jQuery(document).ready(function(){
try {
url = "http://api.com/api/v1/lead/" + leadInfo[1]
jQuery.ajax({
type: 'GET',
contentType: 'application/json',
url: url,
dataType : 'jsonp',
success: function (result) {
result = jQuery.parseJSON(result);
if(!result.data.email){
throw ('New exception');
}
console.log(result);
jQuery('.email').html(result.data.email);
}
});
jQuery('.surveryButton').click(function(){
window.location.replace("http://" + pgInventory.host + pgInventory.path + leadInfo[0] + "&curLeadId=" + leadInfo[1] + "&curViewedPages=0");
});
}
catch(err) {
jQuery('.email').html('your e-mail address');
jQuery('#arrowContent').remove();
}
});
Es sieht aus wie Ich hatte ein wenig Verständnis für JSONP-Aufrufe. Ich hatte den Eindruck, dass JSONP-Aufrufe immer synchron sein mussten, stellt genau das Gegenteil fest, sie sind immer gezwungen, asynchron zu sein. Dies macht jetzt völlig Sinn, dass dieses kleine bisschen Information aufgelöst wurde. Danke, für die schnelle Antwort! – Xenology