【问题标题】:In Azure Functions 3+ how can I change the Response message for invalid parameter binding在 Azure Functions 3+ 中,如何更改无效参数绑定的响应消息
【发布时间】:2021-08-18 21:47:32
【问题描述】:

当我们使用 DateTime 绑定参数设置 Azure 函数 (3) 时,如果调用 API 的人的 DateTime 错误,他们只会收到 “500 Internal Server Error”

在后端我们得到一个这样的错误:

System.Private.CoreLib:执行函数时出现异常:XXX。 Microsoft.Azure.WebJobs.Host:出现一个或多个错误。 (例外 绑定参数“日期时间”)。 System.Private.CoreLib:字符串 “2020-5-13T12:0t”未被识别为有效的日期时间。

我想返回一个 BadRequestObject 并带有错误的特定参数。

我能找到的唯一方法是制作所有参数字符串,然后尝试在代码中解析它们,如果出现问题则通过错误。

有没有更好的办法?

【问题讨论】:

    标签: c# azure-functions


    【解决方案1】:

    以下代码可帮助您使用指定的参数将 500 Internal server error 返回到 BadRequestObject

    [Microsoft.AspNetCore.Mvc.NonAction]
    public  virtual System.Web.Http.BadRequestErrorMessageResult BadRequest (string message);
    

    查看apicontroller.badrequestmethod了解更多详情。

    更新:

    另外,我想建议您使用ArgumentExceptionArgumentNullExceptionArgumentOutOfRangeException

    【讨论】:

    • 我可以在我的代码中返回一个错误的请求。我想根据传递的参数类型不正确自动返回错误。
    • @tank104,根据不正确的参数传递更新了我的答案以返回错误 - 场景。
    • 还是不明白,这是在一个http触发函数上,我想把返回结果改成客户端。你只是提到我可以抛出的异常,所有这些都会返回 http 500。除非我误解了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多