我想使用自定义异常处理,例如

而不是使用(Exception ex)我想使用(LoginException ex)或(RegistrationException ex)或(SomeNameException ex)

是否可以在ASP.NET Web表单中设计此类自定义异常处理?

最佳答案

是的,但是您需要做的是首先创建自己的自定义异常。您需要从Exception基类派生您的异常。这里是一个例子:

[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)
    {
    }
}

然后在您的代码中,您将需要适当地引发此异常:
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.
     }
}

07-24 09:30