try catch 接口404 不执行catch
时间: 2024-10-23 16:01:41 浏览: 20
try catch finally的执行顺序深入分析
`try-catch`语句在JavaScript中用于处理可能出现错误的代码块,通常用于捕获并处理运行时异常。当你尝试访问一个不存在(比如URL不存在或者变量未定义)的资源时,浏览器会抛出一个错误,例如`TypeError`或`ReferenceError`。如果这个错误发生在`try`块内部,相应的`catch`块会被执行,来处理这个异常。
然而,如果你遇到的是HTTP状态码404(页面未找到),这通常是服务器返回的一个状态,并不是一个JavaScript运行时错误。这种情况下,`try`块内的代码不会执行,因为这不是一个预期的程序错误。你需要在代码中专门处理HTTP请求的响应,比如检查`response.status`,如果是404,你可以手动触发一个`catch`块来处理这种情况。
```javascript
let xhr = new XMLHttpRequest();
xhr.open('GET', 'nonexistent-page.com');
xhr.onload = function() {
if (xhr.status === 404) {
// Handle the 404 error here
} else if (xhr.status >= 200 && xhr.status < 300) {
// Success case
} else {
throw new Error(`Unexpected status code: ${xhr.status}`);
}
};
xhr.onerror = function() {
// Network error or other non-HTTP-related errors
};
xhr.send();
```
阅读全文