C#のカスタム例外

カスタム例外

C#が例外クラスの富を提供していますが、唯一のカスタム例外クラス他のいくつかの要件を満たすためです。今日はつまり、例外情報にログに印刷することができ、機能はシンプルで追加するには、この例外クラスを定義します。

以下のようにコードは次のとおりです。

[直列化]
     パブリック クラス PFTException:例外
    { パブリック PFTException()
        { 
        } 公共 PFTException(文字列メッセージ)塩基(メッセージ)
        { 
            PFTLog.Error(メッセージ、()=> {})。
        } 公共 PFTException(文字列のMessageFormat、paramsはオブジェクト []引数)ベース文字列 .Format(のMessageFormat、引数))
        { 
            PFTLog.Error(文字列を
        

        

         .Format(のMessageFormat、引数)、()=> {}); 
        } 公共 PFTException(文字列メッセージのInnerException例外)ベース(メッセージのInnerException)
        { //レコードのみ最も原始的な例外情報IF!((のInnerExceptionはIS PFTException ))
            { 
                PFTLog.Error(メッセージのInnerException、()=> {}); 
            } 
        } /// <まとめ> インタフェースするために必要なISerializationを実装///デシリアライズコンストラクタ。/// </要約> /// <PARAM NAME = "情報"> </ param>の/// <PARAM NAME = "文脈"> </ param>のプライベート

        
            
            


        
        
        
        
        
        PFTException(たSerializationInfo情報、StreamingContextコンテキスト):ベース(情報、コンテキスト)
        { //するStringInfo = info.GetString( "するStringInfo"); 
        } /// <まとめ> /// GetObjectDataオーバーライド方法。カスタムフィールドを追加すると、GetObjectData達成するために、基本クラスのメソッドをオーバーライドする必要があります/// </要約> /// <PARAM NAME = "情報"> </ param>の/// <PARAM NAME = "コンテキスト"> </ PARAM> 公共オーバーライド無効 GetObjectData(たSerializationInfo情報、StreamingContextコンテキスト)
        { //カスタムシリアル化データメンバ//info.AddValue("StringInfo」するStringInfo); //基本クラスのメソッド、そのメンバーの配列を呼び出しベース .GetObjectData(情報、コンテキスト); 
        } 
    }
            

        
        
        
        
        
          
            
            

            
            

[私が前に見ることができる方法ログlog4netのロギングを実現し、]、我々はPFTException直接情報を投げるとき、我々はそれが例外である場合、例外はどうかPFTException自体決定することで、内部のログメッセージに情報を保存しますそうでない場合、それはまた、ログに情報を記録する必要が異常ベースのシステムを意味します。

おすすめ

転載: www.cnblogs.com/snailblog/p/11530629.html