public IHttpActionResult Save(item)
{
try
{
result = MyRepository.Save(item);
return Ok(result);
}
catch
{
// What should I do here?
// I wish to return an error response how can i do that?
}
}
null
但如果有例外,我该怎么办?
null
null
public IHttpActionResult Save(item)
{
try
{
result = MyRepository.Save(item);
return Ok(result);
}
catch
{
return BadRequest("Error message");
}
}
FYI:不要使用try catch块仅仅是为了吞噬一个异常。我个人不喜欢使用try catch块内动作方法。相反,我让Web API 2全局异常处理程序处理异常。这超出了你原来问题的范围。
创建一个模型来保存您想要返回并传递的错误信息。
public IHttpActionResult Save(item) {
try {
result = MyRepository.Save(item);
return Ok(result);
} catch {
// What should I do here? Create a model to hold the data you want to return
var myErrorModel = new {
code = "My custom error code or 500 server error code",
message = "some friendly error message"
};
// I wish to return an error response how can i do that?
var response = Request.CreateResponse(HttpStatusCode.InternalServerError, myErrorModel);
return ResponseMessage(response);
}
}
在javascript客户机中,在错误处理程序中,您可以访问模型属性并根据需要处理错误。
var handleResponse = function (data) {
var code = data.code;
var message = data.message
};
更新:
同意@win的观点,我个人不喜欢在控制器操作中这样做,因为这是一个跨领域的关注点,并且基本上把catch块中的所有内容都移到了全局错误处理程序中。
基类控制器里有error方法,用于api的错误消息返回输出 /** * 操作错误跳转的快捷方法 * @access protected * @param mixed $msg 提示信息,若要指定错误码,可以传数组,格式为['code'=>您的错误码,'msg'=>'您的错误消息'] * @param mixed $data 返回的数据 * @par
问题内容: 我正在使用带有jQuery的ASP.NET MVC。我有以下MVC操作,返回成功页面的一部分。关于“应用程序错误”,我不确定要在客户端正确处理它的方式发送什么: 以下是我的jQuery ajax调用。请注意,我正在检查数据长度以确保没有错误。请建议我这样做的更好方法。 问题答案: 我会在您的ajax调用设置中添加一个错误函数。让服务器确定要显示的错误消息,然后将其传递给ajax错误处理
我试图从输入的日期返回格式为"dd/MM/yyyy"的日期。如果输入的日期具有以下格式:"dd-mm-yyyy",我想返回一个错误:"输入的日期格式无效。"我分享我的代码: 我试图执行以下操作,但这是不正确的,因为我必须返回一个DateTime变量: 我希望你能帮助我!谢啦
我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?
问题内容: 当我将鼠标悬停在任何单词上时,总是显示一个黑框。如果PHP代码返回文本,它将显示在黑框中(应该显示)。但是,如果文本未返回,我希望它返回一个错误函数,以便以后可以更改黑盒的CSS,以使其宽度为而不是。 您可能已经发现,我遗漏了一些不重要的代码。希望有人能理解和帮助我!谢谢! 问题答案: 这正是您可以执行的操作: 在您的PHP文件中: 在您的jQuery AJAX端:
我正在用这样的方法 我想在异常发生时返回一些文本消息,但是现在我只返回状态和空对象。有可能做吗?