Mon scénario:throw new Exception et Application_UnhandledException
J'utilise un modèle Silverlight MVVM. Tous mes modèles de vue héritent d'une classe BaseViewModel qui conserve certaines valeurs et comportements de base.
L'un de ces comportements détermine si l'utilisateur est autorisé à utiliser une fonctionnalité particulière et renvoie un booléen.
Si la fonction ne se trouve pas, je veux lancer une nouvelle exception et attraper ce dans le App.xaml Application_UnhandledException méthode et élever mon propre événement d'exception, quelque chose comme ceci:
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."));
}
I voulez-vous alors ce repris automatiquement dans 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));
}
Mon problème
Lorsque l'exception est levée, elle ne se propage pas dans la pile. Lorsque le débogage de l'exception est frappé encore et encore, aucun autre code ne s'exécute.
Qu'est-ce que je fais mal ici?
Merci, Mark
pourriez-vous s'il vous plaît développer sur le déclenchement d'un événement. J'ai essayé avec Action, mais je n'ai pas obtenu l'exception Application_UnhandledException. – Aligned