try {
// HTTPリクエストの実行
const response = await axios.get('https://example.com/api/data');
console.log(response.data);
} catch (error) {
// エラーハンドリング
const { status, data } = error.response as { status: number; data: string };
console.error({ status });
console.error('response message: ', data);
console.error('This is an error:', error.message);
}
この場合errorはunknown型となりEslintエラーが出る場合があります。
error.responseはany型となりEslintエラーが出ます。
axiosを使用してエラーオブジェクトを扱う際に、isAxiosError
メソッドが役立ちます。
このメソッドは、エラーオブジェクトがaxiosのものであるかどうかを確認するために使用されます。
なぜisAxiosError
が必要なのか?
axiosはPromiseを基盤としているため、通常のエラーオブジェクトとは異なる形式を持っています。isAxiosError
メソッドは、エラーオブジェクトがaxiosのものであるかどうかを確認し、適切に処理するのに役立ちます。
使い方
isAxiosError
メソッドはaxiosからエクスポートされており、以下のように使用します:
try {
// HTTPリクエストの実行
const response = await axios.get('https://example.com/api/data');
console.log(response.data);
} catch (error) {
// エラーハンドリング
if (isAxiosError(error)) {
// axiosのエラーである場合の処理
const { status, data } = error.response as { status: number; data: string };
console.error({ status });
console.error('response message: ', data);
console.error('This is an axios error:', error.message);
} else {
// 通常のエラー処理
console.error('This is a general error:', error.message);
}
}
このようにif文を使用してエラーオブジェクトがaxiosのものと切り分けて分岐で処理を記述しわける事ができます。
注意点
isAxiosError
メソッドは、axios v0.21.0以降で利用可能です。バージョンを確認し、アップグレードすることをお勧めします。
まとめ
isAxiosError
メソッドは、axiosで発生したエラーを正しく処理するために重要です。これを使用することで、axiosの特定のエラー条件に対して適切に対応できます。
axiosを使用する際には、isAxiosError
メソッドを適切に活用して、スムーズなエラーハンドリングを実現しましょう。
コメント