के माध्यम से अपवाद उठाए जाने पर एएसपीनेट वेब एपीआई में अपवादों को वैश्विक रूप से कैसे संभाला जाए, मेरे पास मेरे वेब एपीआई प्रोजेक्ट में वैश्विक अपवाद हैंडलर है। जब यह लैम्ब्डा अभिव्यक्ति के माध्यम से अपवाद उठाया जाता है तो यह ठीक काम करता है। मैं नीचे एक नमूना कोड प्रदान की है: मेरे WebApiConfig कक्षा मेंलैंपडा अभिव्यक्ति
[HttpGet]
public IHttpActionResult Test()
{
//Throw new Exception();// this exception is handled by my ExceptionHandler
var list = new List<int>();
list.Add(1);
IEnumerable<int> result = list.Select(a => GetData(a));
return Ok(result);
}
private static int GetData(int a)
{
throw new Exception();//This is not handled by my global exception handler
}
यह मेरा वैश्विक अपवाद संचालक
public class ExceptionHandlerAttribute : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
//Do something
}
}
मैं इसे रजिस्टर
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = "Get", id = RouteParameter.Optional }
);
config.Filters.Add(new ExceptionHandlerAttribute());
}
}