# 共通ドキュメント

## 例外処理

ここで言う「例外」はビジネスルール上の例外ではなく、プログラム自体が予期していないデータ等に起因する例外の事。

### 概要

- 例外処理の基本
- やってはならない事

### 例外処理の基本

#### 例外処理の目的

- 使用中の外部リソースを安全に破棄する
- ユーザーに異常を知らせて回避の手段を提供する
- 可能であれば現在の作業を保存する手段を提供する
- 不具合修正のための情報源とする

#### 反目的

- 醜いエラー画面を見せないため

#### 例外処理の方法(C#)

1. (Windows)アプリケーションドメインの例外ハンドラーを使用して例外を捕捉し、ログ出力、エラー表示などを行う(CFWプログラミングガイド - エラー処理参照)
2. (Web)global.asaxにおいてApplication_Errorハンドラーを記述して例外を捕捉し、ログ出力、エラー表示などを行う(CFWプログラミングガイド - エラー処理参照)
3. try - catch - finallyで例外を捕捉すし、然るべき処理を行う。

1,2の場合、catchブロックを記述しないtry - finallyブロックを使用して使用中リソースが確実に破棄されるようにする。

3の場合でもログ出力は必要。

### やってはならない事

#### 握りつぶさない

例外が発生する事が予期されていて、かつ例外の対処方法をプログラム自体が認識できる場合以外について例外を握りつぶしてはならない

上の場合であっても、例外を発生させない方法がある(事前のデータ検証で対応できるなど)場合はその方法を優先する。

###

フッター