Sign In| Join
Get Help:Ask a Question in our Forums|Report a Bug|More Help Resources
Member
4 Points
3 Posts
Mar 15, 2012 11:17 AM|LINK
hi ,
In query funcion if a record is null than i am thorwing the exception i.e
throw new HttpResponseException(HttpStatusCode.NotFound);
but when i run the aplication. than it point out that "HttpResposeException was Unhandled by user code"
so please let me know what is the issue with this code..
Code :
public IQueryable<Identity> QueryEddaIdentities(QueryEddaReq request)
{var customerDetail = _securityInstance.QueryEddaIdentities(request);
if (customerDetail == null)
throw new HttpResponseException
(new HttpResponseMessage{StatusCode =HttpStatusCode.NotFound,Content =new StringContent("Identites not found"),ReasonPhrase ="Identites not found"});
return customerDetail.AsQueryable();
}
ANd Use the following ExceptionHandler Filter
public class ExceptionHandlerFilter :ExceptionFilterAttribute
{publicExceptionHandlerFilter(){this.Mappings = new Dictionary<Type, HttpStatusCode>();this.Mappings.Add(typeof(ArgumentNullException), HttpStatusCode.BadRequest);this.Mappings.Add(typeof(ArgumentException), HttpStatusCode.BadRequest);}
public IDictionary<Type, HttpStatusCode> Mappings { get; private set; }
public override void OnException(HttpActionExecutedContext(actionExecutedContext)
{if (actionExecutedContext.Exception != null)
{var exception = actionExecutedContext.Exception;
if (actionExecutedContext.Exception is HttpException)
{var httpException = (HttpException)exception;actionExecutedContext.Result =new HttpResponseMessage{Content = new StringContent( exception.Message ),StatusCode = (HttpStatusCode)httpException.GetHttpCode()};
else if (this.Mappings.ContainsKey(exception.GetType()))
{
var httpStatusCode = this.Mappings[exception.GetType()];
actionExecutedContext.Result =new HttpResponseMessage{Content = new StringContent( exception.Message ),StatusCode = httpStatusCode};
else{actionExecutedContext.Result =new HttpResponseMessage { Content = new StringContent(exception.Message), StatusCode = HttpStatusCode.InternalServerError };}}}}
So whan i throw the httpException than this filter does not handle it.So my app gives the error "Http Exception Un handled by User Code"
dilbaghrangi
Member
4 Points
3 Posts
web api - HttpResponse Exception
Mar 15, 2012 11:17 AM|LINK
hi ,
In query funcion if a record is null than i am thorwing the exception i.e
throw new HttpResponseException(HttpStatusCode.NotFound);
but when i run the aplication. than it point out that "HttpResposeException was Unhandled by user code"
so please let me know what is the issue with this code..
Code :
public IQueryable<Identity> QueryEddaIdentities(QueryEddaReq request)
{var customerDetail = _securityInstance.QueryEddaIdentities(request);
if (customerDetail == null)
throw new HttpResponseException
(new HttpResponseMessage{StatusCode =HttpStatusCode.NotFound,Content =new StringContent("Identites not found"),ReasonPhrase ="Identites not found"});
return customerDetail.AsQueryable();
}
ANd Use the following ExceptionHandler Filter
public class ExceptionHandlerFilter :ExceptionFilterAttribute
{publicExceptionHandlerFilter(){this.Mappings = new Dictionary<Type, HttpStatusCode>();this.Mappings.Add(typeof(ArgumentNullException), HttpStatusCode.BadRequest);this.Mappings.Add(typeof(ArgumentException), HttpStatusCode.BadRequest);}
public IDictionary<Type, HttpStatusCode> Mappings { get; private set; }
public override void OnException(HttpActionExecutedContext(actionExecutedContext)
{if (actionExecutedContext.Exception != null)
{var exception = actionExecutedContext.Exception;
if (actionExecutedContext.Exception is HttpException)
{var httpException = (HttpException)exception;actionExecutedContext.Result =new HttpResponseMessage{Content = new StringContent( exception.Message ),StatusCode = (HttpStatusCode)httpException.GetHttpCode()};
}
else if (this.Mappings.ContainsKey(exception.GetType()))
{
var httpStatusCode = this.Mappings[exception.GetType()];
actionExecutedContext.Result =new HttpResponseMessage{Content = new StringContent( exception.Message ),StatusCode = httpStatusCode};
}
else{actionExecutedContext.Result =new HttpResponseMessage { Content = new StringContent(exception.Message), StatusCode = HttpStatusCode.InternalServerError };}}}}
So whan i throw the httpException than this filter does not handle it.So my app gives the error "Http Exception Un handled by User Code"