发送带有动作结果的消息

时间:2019-03-21 11:32:28

标签: c# exception error-handling azure-functions

我需要从azure函数返回服务器错误。

现在,我使用InternalServerErrorResult()实现相同的功能。它只会发送错误代码,此功能无法发送任何响应/消息。

如何实现异常处理程序,在其中可以使用azure函数中的actionresult一起发送错误代码和消息

当前实施

catch (Exception ex)
            {
                log.LogInformation("An error occured {0}" + ex);
                //json = new Response(ex.StackTrace, AppConstants.ErrorCodes.SystemException).SerializeToString();
                return (ActionResult)new InternalServerErrorResult();
            }

这会在邮递员中返回一个空响应,错误为500

2 个答案:

答案 0 :(得分:2)

请注意,这来自Microsoft.AspNetCore.Mvc命名空间:

var result = new ObjectResult(new { error = "your error message here" })
{
    StatusCode = 500
};

基于配置的格式化程序,它将序列化的对象返回给客户端。 对于JSON(默认设置),它将返回以下内容:

{ "error" : "your error message here" }

答案 1 :(得分:0)

要发送带有状态码的消息,可以使用return StatusCode(httpCode, message),它是ObjectResult

例如:

return StatusCode(500, "An error occurred");

您还可以传递一个对象(使用HttpStatusCode枚举的示例):

return StatusCode((int)HttpStatusCode.InternalServerError, json);