1

別のコード ライブラリを介して例外が処理されるという問題があります。例外を変数として保存して呼び出すことができるかどうかを知っている人はいますか?

私は C# に少し慣れていませんが、var には何でも格納できるという印象を受けました。非同期スレッドで例外をスローしているため、それを渡す必要があり、例外を処理するメインスレッドに戻す必要があります。非同期クラスは Task または Void しかできないため、渡すことができません。このようなものを機能させる方法はありますか?

var passedException = Exception(123456,"Bad thing that happened");
throw new passedException;
4

3 に答える 3

1

varデータ型が実際に何であるかをもっと詳しく調べる必要があります。コードが機能していないこととは関係ありません。

これにはいくつかの問題があります。キーワードExceptionを使用せずにコンストラクターを呼び出そうとします。new次の行newでは、タイプにのみ適用されるインスタンスでキーワードを使用しようとしています。

 Exception e = new Exception("My custom message!");
 throw e;

うまく動作します。

使用したい場合は使用varできますvar eが、ここでは価値がなく、imo は機能の悪用に過ぎません。varは単なる構文糖衣であり、型がステートメントの右側から推測できる場合にのみ、コンパイラーはそれを許可します。

于 2013-10-11T22:23:38.573 に答える
0
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
于 2013-10-11T22:23:18.983 に答える
0

オブジェクトnewを作成している最初の行にキーワードを移動するだけです。Exception

var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
于 2013-10-11T22:23:38.357 に答える