【发布时间】:2020-03-08 05:06:56
【问题描述】:
我有可能会失败的 Azure 函数(Http 触发器)。我还为其配置了 Application Insights。
如果出现错误(哪个更好):
- 捕获异常,包含更多信息并重新抛出它。 (发送 500 响应)或
- 捕获异常,记录,包装,重新抛出给调用者。 (发送 500 响应)或
- 捕获异常,记录(不要抛出),手动发送 500 响应。
Application Insight 能够记录异常。我真的看不出同时记录错误和抛出异常的意义。
指导方针是什么?什么是好的做法?
【问题讨论】:
-
有两篇关于异常处理的文章我经常链接并考虑阅读:blogs.msdn.microsoft.com/ericlippert/2008/09/10/… | codeproject.com/Articles/9538/… |从第一篇文章开始,Web 错误往往属于“外生”部分。 |如果(以及何时)应该换行将在第 2 部分讨论。
-
我记得最近的一个问题是包装很有帮助。我们得到一个 IOException,其消息显然来自 Argument Exception(函数参数为 null 或类似的)。所以它很可能围绕着原始的 ArgumentException。它确实添加了“语法值”,因为现在我知道 Argument Exception 发生在 IO 代码中的某个位置。
-
Hooch,你目前最喜欢的方法是什么?让 Function 应用基础架构将引发的异常记录到连接的 AppInsights 中?
标签: c# azure azure-functions azure-application-insights