在处理Promise时,可以使用try-catch块来捕获除了解决/拒绝Promise之外的Http错误。以下是一个使用axios库发送HTTP请求并捕获除网络错误之外的错误的示例代码:
const axios = require('axios');
async function fetchData() {
try {
const response = await axios.get('https://api.example.com/data');
// 在这里处理成功的逻辑
console.log(response.data);
} catch (error) {
if (error.response) {
// 请求已发出,但服务器响应状态码不在 2xx 范围内
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// 请求已发出,但没有收到响应
console.log(error.request);
} else {
// 发生了其他错误
console.log('Error', error.message);
}
}
}
fetchData();
在上面的代码中,我们使用了axios库来发送HTTP请求。如果请求成功,我们可以在response
对象中访问响应的数据。如果发生任何HTTP错误(除了网络错误),我们可以在error.response
对象中访问有关错误的更多信息,例如状态码、响应头等。如果发生网络错误,我们可以在error.request
对象中访问有关请求的更多信息。其他类型的错误可以在error.message
中找到。
注意:这只是一个示例代码,具体的实现可能会因使用的HTTP库或框架而有所不同。请根据自己的实际情况进行调整。