2009-10-16 7 views
1

Je veux utiliser la gestion des exceptions personnalisée, par exempleerreur personnalisée manipulation ASP.NET

au lieu d'utiliser (Exception ex) je veux utiliser (LoginException ex) ou (RegistrationException ex) ou (SomeNameException ex)

est-il possible de concevoir une telle gestion des exceptions personnalisées dans les formulaires Web ASP.NET?

+0

Dup http://stackoverflow.com/questions/1573130/net-throwing-custom- exceptions – andrewWinn

+1

Ce n'est pas vraiment un doublon, mais il est lié à cette question. Rahuls, je regarderais spécifiquement cette réponse, et les liens qui y sont contenus: http://stackoverflow.com/questions/1573130/net-throwing-custom-exceptions/1573156#1573156 –

+0

Merci beaucoup, les informations/liens sont très utiles –

Répondre

2

Oui, mais ce que vous devez faire est d'abord créer vos propres exceptions personnalisées. Vous devez déduire votre exception de la classe de base Exception. Voici un exemple:

[Serializable] 
public class LoginFailedException: Exception 
{ 
    public LoginFailedException() : base() 
    { 
    } 

    public LoginFailedException(string message) 
     : base(message) 
    { 
    } 

    public LoginFailedException(string message, Exception innerException) 
     : base(message, innerException) 
    { 
    } 

    protected LoginFailedException(SerializationInfo info, StreamingContext context) 
     : base(info, context) 
    { 
    } 
} 

Puis dans votre code, vous devez soulever cette exception de façon appropriée:

private void Login(string username, string password) 
{ 
    if (username != DBUsername && password != DBPassword) 
    { 
      throw new LoginFailedException("Login details are incorrect"); 
    } 

    // else login... 
} 

private void ButtonClick(object sender, EventArgs e) 
{ 
    try 
    { 
      Login(txtUsername.Text, txtPassword.Text); 
    } 
    catch (LoginFailedException ex) 
    { 
      // handle exception. 
    } 
} 
+0

Oui merci, c'est ce que je cherchais. –

0

Vous voulez dire quelque chose comme:

 
try{ 
    somefunc(); 
}catch(LoginException ex){ 

}catch(RegistrationException ex){ 

}catch(SomeNameException ex){ 

} 

Ou voulez-vous dire coder les classes pour jeter les exceptions?

+0

oui je veux coder quelque chose comme ça –