我想使用自定义异常处理,例如
而不是使用(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.
}
}