我想用自定义的异常处理,例如自定义错误处理ASP.NET
而不是使用(异常前)我想用(LoginException异常前)或(RegistrationException前)或(SomeNameException前)
是否有可能在ASP.NET webforms中设计这种自定义异常处理?
我想用自定义的异常处理,例如自定义错误处理ASP.NET
而不是使用(异常前)我想用(LoginException异常前)或(RegistrationException前)或(SomeNameException前)
是否有可能在ASP.NET webforms中设计这种自定义异常处理?
是的,但您需要做的是首先创建您自己的自定义例外。您需要从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.
}
}
是的,谢谢你,这就是我正在寻找。 – 2009-10-16 14:42:00
你的意思是这样的:
try{ somefunc(); }catch(LoginException ex){ }catch(RegistrationException ex){ }catch(SomeNameException ex){ }
还是你的意思编码类抛出的异常?
是的,我想代码这样 – 2009-10-16 14:33:46
Dup的http://stackoverflow.com/questions/1573130/net-throwing-custom-例外 – andrewWinn 2009-10-16 14:21:53
这不是真的重复,但它与该问题有关。拉胡尔斯,我特别看这个答案,并在其中包含的链接:http://stackoverflow.com/questions/1573130/net-throwing-custom-exceptions/1573156#1573156 – 2009-10-16 14:32:55
非常感谢你,信息/链接是非常有帮助的 – 2009-10-16 14:40:37