TRY 〜 CATCH 〜 END_CATCHマクロを使用した例外処理
品質のよいソフトを作成するためには、例外処理は必須の要素です。
そこで、C++には、try 〜 catchという例外処理をする構文があります。
もちろん、Visual C++でこれを使用することは可能ですが、Visual C++には
同様な処置を実施するたまのマクロが存在します。
【TRY 〜 CATCH 〜 END_CATCHの構文】
TRY{
通常処理
}
CATCH(例外クラス*){
例外処理
}
END_CATCH
ここで、CATCHで拾った別の例外処理を同じTRY構文で実施したい場合があります。
そんな時は、AND_CATCHを使用します。
TRY{
通常処理
}
CATCH(例外クラス*){
例外処理
}
AND_CATCH(例外クラス*){
例外処理
}
END_CATCH
どうですか、if 〜 else if 〜みたいで便利です。
例外をスローしたい場合は、throwを使用します。
【throwの構文】
throw(例外クラス)
例外クラスは省略可能
| 例外クラス | |
|---|---|
| CMemoryException | メモリ不足例外 |
| CFileException | ファイル例外 |
| CArchiveException | アーカイブ/シリアル化例外 |
| CNotSupportedException | サポートされていないサービスを要求されたときの応答 |
| CResourceException | Windows リソース割り当て例外 |
| CDaoException | データベース例外 (DAO クラス) |
| CDBException | データベース例外 (ODBC クラス) |
| COleException | OLE 例外 |
| COleDispatchException | ディスパッチ (オートメーション) 例外 |
| CUserException | メッセージ ボックスでユーザーに警告を与えてから汎用CExceptionをスローする例外 |
| CInternetException | インターネットの例外 (Internet クラスでの例外状態) |