簡體   English   中英

嘗試捕獲塊未捕獲加載錯誤

[英]Load error is not captured by try catch block

我有一個類似的代碼:

try{
  ...
} catch(error){
  ...
};

try塊中,有一個向服務器發出請求的函數調用。 如果服務器上沒有資源,則會引發錯誤(如我在Google Chrome瀏覽器的開發人員工具中看到的):

Failed to load resource: the server responded with a status of 404 (Not Found)

並且我試圖在catch塊中捕獲它,但是未捕獲到錯誤。

try catch塊未捕獲加載錯誤是JavaScript的功能嗎?

通常,當從服務器請求信息時(例如,通過ajax,通過設置img元素的src等),您不會獲得異常 ,但是會收到錯誤事件或回調,這尤其是因為進行請求的代碼先於請求完成,因此此時無法引發異常。 由於您沒有顯示如何請求信息,因此不可能更加具體,但這就是為什么您沒有例外。

例如,對於ajax請求,如果發生錯誤,則您會看到ajax請求已完成,但XMLHttpRequest對象的statusCode是錯誤狀態代碼,而不是200。例如:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
        // The request is complete; did it work?
        if (xhr.statusCode >= 200 && xhr.statusCode < 300) {
            // Yes
        }
        else {
            // No, got a code outside the 2xx range
        }
    }
};
xhr.open("GET", "/your/url/here", true);
xhr.send();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM