我正在建立一个网站。我遇到了抛出404和500等不同错误的问题。
try
{
//logic comes here
}
catch(HttpException he)
{
throw he;
}
现在404和500都属于HttpException。但是这两种类型都有一些其他的自定义逻辑。我如何区分两者,以便我可以编写两个catch块?
答案 0 :(得分:1)
你可以这样做:
try
{
//logic comes here
}
catch (WebException e)
{
var code = ((HttpWebResponse)e.Response).StatusCode;
if(code == HttpStatusCode.BadRequest)
{
//some logic1
}
if(code == HttpStatusCode.InternalServerError)
{
//some logic2
}
}
答案 1 :(得分:1)
假设C#6,您可以使用http://bugreport.sun.com/bugreport/crash.jsp根据状态代码将处理拆分为不同的catch块:
{!! Form::open() !!}
{!! Form::model() !!}
答案 2 :(得分:0)
使用HttpException.GetHttpCode()方法查找它是500还是404.
更多详情https://msdn.microsoft.com/en-us/library/system.web.httpexception.gethttpcode(v=vs.110).aspx