3

ステートメントの外でthrowステートメントを使用することは可能try{} catch{}ですか? 私のコード (CRM 2011 でのプラグイン プログラミング) では、ユーザーにカスタム メッセージを表示したいだけです。スローが機能しない場合、どうすればそれを行うことができますか?

なにか提案を?

4

5 に答える 5

6

プラグインでユーザーにメッセージを返すには、単純に例外をスローできます

throw new Exception("Your message here!");

try/catch ブロック内にある必要はありません。実際、そうであった場合、メッセージは抑制され、ユーザーには表示されません。

于 2012-05-16T10:56:00.887 に答える
4

はい、他の回答がここに述べているように、例外をスローして、プラグインでのそれ以上のアクションを防ぐことができます. ただし、Dynamics CRM プラグインを使用したプログラミングについて具体的に言及しているため、 MSDN のガイドラインInvalidPluginExecutionExceptionに従って、カスタム メッセージをユーザーに反映するためにのみスローすることをお勧めします。

必要に応じて、プラグインでカスタム メッセージを Message プロパティ値として InvalidPluginExecutionException 例外をスローすることにより、Web アプリケーションのダイアログにカスタム エラー メッセージを表示できます。プラグインは InvalidPluginExecutionException のみをプラットフォームに返すことをお勧めします。

したがって、プラグインで論理エラーが発生した場合 (例: タイトル フィールドが空)、次のことができます。

throw new InvalidPluginExecutionException("Title must not be blank");
于 2012-05-16T16:09:54.343 に答える
2

はい、

throw new Exception("your message");

また

throw new Exception(objectExtendedFromExceptionClass);
于 2012-05-16T10:55:35.743 に答える
1

MSDN から:例外のスロー

例外には、StackTrace という名前のプロパティが含まれています。この文字列には、現在のコール スタックのメソッドの名前と、各メソッドで例外がスローされたファイル名と行番号が含まれます。

はい、例外をスローできます。このような

throw new Exception("Your Error here!");
于 2012-05-16T10:56:48.003 に答える
1

try{} catch(){} ステートメントの外で throw ステートメントを使用することは可能ですか?

絶対。例外は、最も近い一致する catch ブロックにスタックを伝播します。もちろん、どこかで正しいことを行う catch ブロックが必要になりますが、同じメソッドや同じクラスである必要はありません。

ここで例外が最も適切な解決策であるかどうかは、もちろん別の問題です - それは文脈に依存します。

于 2012-05-16T10:56:02.950 に答える