以下为axios捕获错误异常的两种方式:
- 基于async/await机制
- 基于promis机制
axios基于async/await捕获错误异常
下面的脚本必须写在async函数里
try {
const response = await axios.get('https://your.site/api/v1/bla/ble/bli');
console.log(response);
} catch (error) {
// Error
if (error.response) {
/*
* 错误情况一:请求有返回响应,但响应码不是2xx等不正确的状态码。
*/
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
/*
* 错误情况二:请求没有收到响应, 再浏览器环境下`error.request`是XMLHttpRequest实例,
* 在Node.js环境下,`error.request`是一个http.ClientRequest实例。
*/
console.log(error.request);
} else {
// 其他情况触发错误
console.log('Error', error.message);
}
console.log(error);
}
axios基于promis捕获错误异常
axios.get('https://your.site/api/v1/bla/ble/bli')
.then((response) => {
console.log(response);
})
.catch((error) => {
// Error
if (error.response) {
/*
* The request was made and the server responded with a
* status code that falls out of the range of 2xx
*/
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
/*
* 错误情况二:请求没有收到响应, 再浏览器环境下`error.request`是XMLHttpRequest实例,
* is an instance of XMLHttpRequest in the browser and an instance
* of http.ClientRequest in Node.js
*/
console.log(error.request);
} else {
// Something happened in setting up the request and triggered an Error
console.log('Error', error.message);
}
console.log(error.config);
});