CFIleExceptionファイルの異常処理

2198 ワード

ファイルの異常処理1.CFileException 2.CExceptFile
CFIleException例外クラスの1つで、ファイル操作中に発生する可能性のあるエラーを検出します.CFIleException例外クラスの1つで、ファイル操作中に発生する可能性のあるエラーを検出します.
CFIleExceptionクラスの宣言ファイルはヘッダファイルafxに保存する.h中.
CFIleとその派生クラスのオブジェクトを使用する場合、例外が発生するとCFIleExceptionオブジェクトが作成され、放出されます.TRY...CATCH...END_を採用CATCH.
CFIleExceptionオブジェクトは、ファイルに関連する例外を表します.CFIleExceptionクラスには、移行可能な理由コードやオペレーティングシステムが指定したエラー値などの共通データメンバーが含まれます.これにより、ファイル異常を発生させる静的メンバー関数も提供され、オペレーティングシステムとCの実行中のエラー原因コードが返されます.
CFIleExceptionオブジェクトは、CFIleメンバー関数で作成および生成され、派生クラスメンバー関数で作成または生成されます.これらのオブジェクトはCATCH式の範囲内でアクセスできます.移植可能なため、エラーコードのみで異常の原因を取得できます.例外の詳細については、オンラインドキュメント「Visual C++プログラマガイド」の「例外」を参照してください.
CFIleExceptionクラスのメンバー
データメンバーm_Causeには異常原因に対応する移植可能コードが含まれています
m_IosErrorには、関連するオペレーティングシステムのエラーコードが含まれています.
m_strFileNameには例外のファイル名が含まれています
コンストラクション関数CFIleExceptionはCFIleExceptionオブジェクトを構築します
コード変換OsErrorToExceptionオペレーティングシステムエラー値に対応するエラー原因コードを返す
ErrnoToExceptionは、実行エラー値に対応するエラー原因コードを返します.
ヘルプ関数ThrowOsErrorは、オペレーティングシステムのエラー値に対応するエラー原因コードを返します.
ThrowErrnoは、実行エラー値に基づくファイル例外を生成します.
CFileException::CFileException
CFileException(int cause = CFileException::none,LONG lOsError = -1);
パラメータ:causeは、例外の原因を示す列挙型変数です.CFIleException::m_を参照Cause、可能な値のリストを理解します.
lOsErrorが可能であれば、異常なオペレーティングシステム指定の原因です.lOsErrorパラメータはcauseよりも多くの情報を提供する.
説明:
CFIleExceptionオブジェクトを作成し、エラー・コードとオブジェクト内のオペレーティング・システム・コードを格納します.
このコンストラクション関数を直接使用するのではなく、グローバル関数AfxThrowFileExceptionを呼び出します.
注意:
変数lOsErrorはCFIleとCStdioFileオブジェクトにのみ適用できます.CMemFileクラスではこのエラーコードは処理されません.
CExceptFile
           
exception                                       
runtime_error                             :             
range_error                                :                
overflow_error                            :    
underflow_error                          :    
logic_error                                :           
domain_error                            :         
invalid_argument                      :      
length_error                              :                   
out_of_range                            :