こんにちは。よっしーです(^^)
今日は、SvelteKitでのエラー処.理について解説しています。
背景
SvelteKitでのエラー処理について調査する機会がありましたので、その時の内容を備忘として記事に残しました。
エラー処理
エラーはソフトウェア開発において避けられない事実です。SvelteKit は、エラーの発生場所、エラーの種類、受信したリクエストの性質に応じて、エラーを異なる方法で処理します。
Error objects
SvelteKitは、予期されるエラーと予期しないエラーを区別します。どちらもデフォルトでは単純な { message: string }
オブジェクトとして表現されます。
以下の例のように、code
やトラッキング用の id
などの追加のプロパティを加えることができます。(TypeScriptを使用する場合、これには型安全性で説明されているように Error
型を再定義する必要があります)。
例えば:
// 予期されるエラー
throw error(404, {
message: 'Not found',
code: 'NOT_FOUND'
});
// 予期しないエラー
throw {
message: 'Unexpected error occurred',
id: 'abc123'
};
TypeScriptを使用する場合、app.d.ts
ファイルで Error
型を拡張できます:
declare global {
namespace App {
interface Error {
message: string;
code?: string;
id?: string;
}
}
}
export {};
このように定義することで、エラーオブジェクトに追加のプロパティを含めることができ、型安全性を保ちながらより詳細なエラー情報を提供できます。これは、エラーハンドリングやデバッグの際に非常に有用です。
また、これらの追加プロパティは $page.error
を通じてクライアントサイドでアクセスできるようになり、ユーザーインターフェースでより詳細なエラー情報を表示したり、エラーレポートを生成したりする際に活用できます。
おわりに
今日は、 SvelteKitでのエラー処理について解説しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント