私のシナリオ:私はSilverlightのMVVMパターンを使用していスロー新しい例外とApplication_UnhandledException
。私のすべてのビューモデルは、いくつかの基本的な値と動作を維持するBaseViewModelクラスを継承しています。
これらの動作の1つは、ユーザーが特定の機能を使用する権限を持っているかどうかを判断し、ブール値を返します。
機能が配置されていない場合、私は新しい例外をスローし、App.xaml Application_UnhandledException方法でこれをキャッチし、そして自分自身の例外イベントを発生させる、このような何かしたい:私は
protected bool IsFunctionEnabled(string FunctionName)
{
//fetch the function/role
if (_FunctionRoles().ContainsValue(FunctionName))
{
KeyValuePair<int, string> kvp = _FunctionRoles().GetEntryByStringValue(FunctionName);
//determine if the user has been assigned to this role
return (_UserRoles().ContainsKey(kvp.Key));
}
//throw an exception when the function name is not located.
throw new Exception(string.Format(Constants.UNHANDLED_EXCEPTION, "security role assignment: '" + FunctionName + "' not located."));
}
これは自動的にApp.XAMLでピックアップしたい:
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
// throw this message to the main application exception event handler
ApplicationEvents.OnExceptionOccurred(this,
new ExceptionEventArgs(e.ExceptionObject,
null,
ExceptionImportance.Critical));
}
私の問題
例外がスローされると、スタックにバブリングされません。例外のデバッグが何度も繰り返されると、他のコードは実行されません。
私はここで間違っていますか?
おかげで、 マーク
イベントをトリガーにしてください。私はActionを試しましたが、Application_UnhandledExceptionが発生することはありませんでした。 – Aligned