gpt4 book ai didi

c# - 从 Azure Function HttpTrigger 返回错误详细信息

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:15 27 4
gpt4 key购买 nike

我创建了一个带有 HTTP 触发器的 Azure 函数。我希望将详细的错误信息返回给调用者。有没有办法处理未捕获的异常?奇怪的是,Azure Functions 在 Visual Studio 中运行时会返回详细的错误信息,但在部署时不会。

[FunctionName("MyAzureFunction")]
public static async Task<HttpResponseMessage> RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage httpRequest,
TraceWriter traceWriter,
CancellationToken cancellationToken)
{
try
{
var response = await ProcessAsync(request, cancellationToken);

return httpRequest.CreateResponse(HttpStatusCode.OK, response);
}
catch (ArgumentException ex)
{
traceWriter.LogWarning($"Argument error: {ex}");
return httpRequest.CreateResponse(HttpStatusCode.BadRequest, ex.Message);
}
catch (Exception ex)
{
traceWriter.LogError($"Error: {ex}");
throw;
}
}

最佳答案

通常,从安全角度和其他角度来看,将异常详细信息返回给外部调用者被认为是不好的做法。因此,默认情况下阻止此信息是有意义的。

我会将 throw; 语句替换为返回手动格式化错误的语句。如果您愿意将异常消息公开给调用者,那么就很简单

return httpRequest.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);

如果调用者是外部调用者,我也不会这样做:相反,返回一条通用错误消息,然后依靠日志记录进行调试。

关于c# - 从 Azure Function HttpTrigger 返回错误详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51212199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com