エラーハンドラーの設定⚓︎
フロントエンドの例外処理方針 に記載の通り、業務フロー上は想定されないシステムのエラーを表すシステム例外と、業務フロー上想定されるエラーを表す業務例外をそれぞれ捕捉し、適切にハンドリングする必要があります。
グローバルエラーハンドラーの設定⚓︎
業務フロー上発生が想定されないエラーを捕捉し、ハンドリングするためのグローバルエラーハンドラーを設定します。 エラーハンドラーはアプリケーションの共通部品なので、新しくsharedフォルダーを作成し、下図の階層に、global-error-handler.tsを作成します。
<workspace-name>
└─ src/
└─ shared/ ---------------------- アプリケーションの共通部品が配置されるフォルダー
└─ error-handler/
└─ global-error-handler.ts
グローバルエラーハンドラーは、 Vue.js の プラグイン として実装します。 プラグインは、アプリケーション全体で利用したい機能やコンポーネントがある場合に有用です。
グローバルエラーハンドラーの実装例
Vue.js アプリケーションで発生したエラーに対するハンドリングは、 Vue.js で用意されている app.config.errorHandler に実装します。 JavaScript の構文エラーや、 Vue アプリケーション外の例外に対しては、addEventListener() メソッドを用いてイベントリスナーを追加することでハンドリングします。同期処理については error イベントを検知することでハンドリングし、 API 通信や I/O 処理のような非同期処理については unhandledrejection イベントを検知することで、ハンドリングします。
| global-error-handler.ts | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
実装したグローバルエラーハンドラーを、アプリケーションのエントリーポイントでインストールします。
エントリーポイントの実装例
| main.ts | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
カスタムエラーハンドラーの設定⚓︎
業務フロー上想定されるエラーを把握するためには、バックエンドアプリケーションとの連携が必要です。 そのため、業務例外に対するハンドリングは、OpenAPI 仕様書からのクライアントコード生成 にてバックエンドアプリケーションとの連携を設定したあと、カスタムエラーの設定 で行います。