ajax – MVC 5 Jquery加载 – 捕获内部异常

我有一个局部视图,它从SQL过程加载一个ObjectResult.这是使用内置的EF方法.

public virtual ObjectResult<Something_Result> getSomething()
{
    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Something_Result>("getSomething");
}

所以一个常见的问题是来自数据库的超时,我想表明这一点.但我似乎无法在Ajax.Load()函数的异常对象中找到它.
在responseText中,我只得到“{”message“:”执行命令定义时发生错误.有关详细信息,请参阅内部异常.“}”和状态:500

那么获取内部异常也是一种简单的方法吗?
这是Ajax.load()函数http://i.imgur.com/ZIrTrMU.jpg抛出的异常
这是EF:http://i.imgur.com/LgOhOlB.png的内部例外

最佳答案 您可以在数据访问层中放置一个try catch块,您可以在其中调用getSomething方法并在堆栈中发送相应的响应文本.根据您放置catch块的位置,您可以检查是否:

if(ex.Number == -2)

要么

if(ex.InnerException != null && ex.InnerException.Number == -2)
 return Json(new { successful = false, Message = "Timeout" });

并返回适当的响应文本作为Json响应,或者如果只想处理TimeOutException,则可以将特定的catch块放入’Timeout Exception’

catch(TimeoutException ex)  
{  return Json(new { successful = false, Message = "Timeout" }); }
点赞