ステートメントの外でthrowステートメントを使用することは可能try{} catch{}
ですか? 私のコード (CRM 2011 でのプラグイン プログラミング) では、ユーザーにカスタム メッセージを表示したいだけです。スローが機能しない場合、どうすればそれを行うことができますか?
なにか提案を?
ステートメントの外でthrowステートメントを使用することは可能try{} catch{}
ですか? 私のコード (CRM 2011 でのプラグイン プログラミング) では、ユーザーにカスタム メッセージを表示したいだけです。スローが機能しない場合、どうすればそれを行うことができますか?
なにか提案を?
プラグインでユーザーにメッセージを返すには、単純に例外をスローできます
throw new Exception("Your message here!");
try/catch ブロック内にある必要はありません。実際、そうであった場合、メッセージは抑制され、ユーザーには表示されません。
はい、他の回答がここに述べているように、例外をスローして、プラグインでのそれ以上のアクションを防ぐことができます. ただし、Dynamics CRM プラグインを使用したプログラミングについて具体的に言及しているため、 MSDN のガイドラインInvalidPluginExecutionException
に従って、カスタム メッセージをユーザーに反映するためにのみスローすることをお勧めします。
必要に応じて、プラグインでカスタム メッセージを Message プロパティ値として InvalidPluginExecutionException 例外をスローすることにより、Web アプリケーションのダイアログにカスタム エラー メッセージを表示できます。プラグインは InvalidPluginExecutionException のみをプラットフォームに返すことをお勧めします。
したがって、プラグインで論理エラーが発生した場合 (例: タイトル フィールドが空)、次のことができます。
throw new InvalidPluginExecutionException("Title must not be blank");
はい、
throw new Exception("your message");
また
throw new Exception(objectExtendedFromExceptionClass);
MSDN から:例外のスロー
例外には、StackTrace という名前のプロパティが含まれています。この文字列には、現在のコール スタックのメソッドの名前と、各メソッドで例外がスローされたファイル名と行番号が含まれます。
はい、例外をスローできます。このような
throw new Exception("Your Error here!");
try{} catch(){} ステートメントの外で throw ステートメントを使用することは可能ですか?
絶対。例外は、最も近い一致する catch ブロックにスタックを伝播します。もちろん、どこかで正しいことを行う catch ブロックが必要になりますが、同じメソッドや同じクラスである必要はありません。
ここで例外が最も適切な解決策であるかどうかは、もちろん別の問題です - それは文脈に依存します。