プログラミングに不慣れな私は、特定の種類のエラーを具体的にキャッチし、コードをその種類のエラーのみに結び付けることができることを知りました。
私は主題を研究してきましたが、構文がよくわかりません。
catch (InvalidCastException e)
{
}
が処理されているエラーの種類であることは理解していInvalidCastException
ますが、それが何でe
あるかはわかりません。
誰かがこれを説明してもらえますか?
プログラミングに不慣れな私は、特定の種類のエラーを具体的にキャッチし、コードをその種類のエラーのみに結び付けることができることを知りました。
私は主題を研究してきましたが、構文がよくわかりません。
catch (InvalidCastException e)
{
}
が処理されているエラーの種類であることは理解していInvalidCastException
ますが、それが何でe
あるかはわかりません。
誰かがこれを説明してもらえますか?
がなかったとしe
ます。例外のメッセージをどのように取得しますか?
名前e
(またはその他の名前) は、例外オブジェクトのハンドルを取得して、そこから情報を抽出できるようにするためにあります。
名前を与えないのは正当な構文です:
catch (InvalidCastException) //legal C#
これは機能しますが、エラーの種類以外は何もわかりません。
はe
、例外に固有のデータを保持するオブジェクトです。さまざまな種類の例外を調べてみると、それらはすべて異なる種類のデータを持っていることがわかります。多くはそうではありませんが、多くはそうであり、一般的なエラーを取得するのではなく、何が起こったのかを正確に特定するのに役立ちます。
たとえば、 は、通常のオブジェクトには存在しないNotFiniteNumberException
という追加のプロパティを定義します。これにより、何が起こったのかを正確に把握するために必要な追加データが提供されます。OffendingNumber
Exception
"e"
例外を呼び出すことにしたものは何でもです。あなたがするように
string name = "...";
また
int total = 8;
ここstring
でint
、この例の と はデータ型です (あなたの場合、データ型は ですInvalidCastException
) 一方、 " name
" と " total
" は変数名で、あなたの場合は単に " e
" です。
は'e'
単なる変数名です。読みやすい場合は、'ex'
それを呼び出すことができます。'exception'
しかし、構文'e'
の 'i' のように単なる規則ですfor i = 0...
e
InvalidCastException
のインスタンスが配置される変数です。try
次に、そのオブジェクトのプロパティを表示して、ブロック内のコードによってスローされたエラーの原因を正確に理解するのに役立てることができます。
「InvalidCastException」は型で、e はこの型のオブジェクトです。オブジェクトを使用すると、そのオブジェクトに対してメンバー関数を呼び出すことができます。例えば
catch (InvalidCastException e) {
...
e.printErrorMessage();
...
}
e
キャッチされた例外の詳細を格納する例外オブジェクトへの参照です。詳細には、例外Message
、InnerException
オブジェクトなどが含まれる場合があります。
e は InvalidCastException タイプのインスタンスです。catch ブロックでは、たとえば Debug.Write(e.ToString()) と言うことができます。
e
変数名です。など、好きな名前を付けることができますexception
。
e
例外を保持する変数なので、次のようなことができるようe.message
になりました