C#のデバッグとエラー処理

そして、プログラミングプロセスにおける優れたプログラマはまた、私たち後輩の学者プログラムのそれを言及しないように、間違いを犯すだろう。良いプログラマは時々我々は見つけることができないプログラムがあり、いくつかのミスを見つけ、それらにいくつかの微妙なミスを修正します。あなたは、デバッグのためにトラッキングコードを持っている場合。

.Visual Studioのデバッグ

デバッグモードでプログラムを実行すると、操作が良いコードを書くことです。情報はVS、Debugディレクトリにある.PDB形式のファイルに保存されている情報に記録されているものの間に起こったコードの各行をデバッガ。

動作時に出力ウィンドウに書かれたテキストは、およそ2つのコマンドを使用することができ、この時点で非常に簡単です:

Debug.WriteLine() 

Trace.WriteLine()

第もまた、名前空間に参加したい、これらの二つの機能を指すプログラムを公開するために使用することができるが、両方のコマンド関数法は、デバッグモードで実行される最初のコマンドの違いに似ている:.たSystem.Diagnosticsを使用します;

静的int型MAXNUM(INT [] a)は//

{

Debug.WriteLine( "ソート配列が始まります");

int型の最大値= [0]。

int型のインデックス。

以下のために(int型I = 1; I <a.Length、私は++)

{

(最大<[I])の場合

{

最大= [I]; //ブレークポイントのデザイン

インデックス= I;

}

}

Trace.Write(「一番大きな数の指標です」)。

最大を返します。

実は、この問題は、デバッグに関連する可能性自体はそれらの人々を達成するためのプロセスを実行している唯一の専門プログラムは、デバッグにプロセスを心配するだろう、と一般的に、我々は、エラーが特定の実装プロセスを気にすることはできませんときに、プログラムが実行されていないことが判明しています。

II。例外処理。

プログラムの異常の存在は、それが存在しない場合は、開いているファイル内のファイルを開くことがあるかどうかを決定するために、例えば、実行されているの異常が異常がある場合に中止するプログラムは、通常の手順を確実にするために、処理のいくつかの方法を使用する必要があるかもしれない引き起こす原因となり実行します。

試します

{

<実行中に異常が含まれていてもよいです>

}

キャッチ(例外の例外をキャッチ)

{

<例外処理>

}

最終的には{<最終的に行います>

}

異常の種類:基本的なException.2:アプリケーション例外クラス

3つの例外クラス関連のパラメータ:ArgumentExceptionがクラスフォーマット例外カテゴリ:

4:3つの種を含んでいるメンバーのアクセスおよび関連例外MemberAccessExceptionクラス

FileAccessExceptionカテゴリ:MethodAccessExceptionカテゴリ: 
   MissingMemberExceptionカテゴリ:

例としてダウンは、データ処理において一般的です。

int型×1 = 40;

int型×2 = 0;

int型×3、

ラベルの再=新しいラベル();

re.Text = Convert.ToString(X1 / X2)

結果は

 

キャッチ---最後に例外処理モードが実行される---お試しください。

プログラムが何をする意思を試してみて、キャッチが異常と珍しい単語やキャッチの同じタイプがある場合、発生する可能性のあるプロセスをキャプチャする異常試しがあり、.finally例外が実行されるかどうかのコードを例外処理をキャッチ。もちろん、複数存在することができ発生する可能性のある複数のプロセスのキャプチャプログラムの実行を処理するための例外をキャッチ。

这里就不多说了.下面列举出C#处理过程中存在的不同异常类型.,
MemberAccessException                           访问错误:类型成员不能被访问   
ArgumentException                               参数错误:方法的参数无效   
ArgumentNullException                           参数为空:给方法传递一个不可接受的空参数   
ArithmeticException                             学计算错误:由于数学运算导致的异常,覆盖面广。   
   ArrayTypeMismatchException                      数组类型不匹配   
    
DivideByZeroException                           被零除   
    FormatException                                 参数的格式不正确   
    IndexOutOfRangeException               索引超出范围,小于0或比最后一个元素的索引还大   
    InvalidCastException                            法强制转换,在显式转换失败时引发   
    MulticastNotSupportedException                  不支持的组播:组合两个非空委派失败时引发   
    NotSupportedException                           调用的方法在类中没有实现   
    NullReferenceException                          引用空引用对象时引发   
    OutOfMemoryException                            无法为新语句分配内存时引发,内存不足   
    OverflowException                               溢出   
    StackOverflowException                          栈溢出   
    TypeInitializationException                     错误的初始化类型:静态构造函数有问题时引发   
    NotFiniteNumberException

转载于:https://www.cnblogs.com/zhangchenliang/archive/2012/09/02/2667230.html

おすすめ

転載: blog.csdn.net/weixin_34335458/article/details/93495249