【发布时间】:2021-01-03 14:25:14
【问题描述】:
我有以下异常:
public class InvalidStatusCodeException : Exception
{
public HttpStatusCode ReceivedStatusCode { get; set; }
public string ApiUrl { get; set; }
public InvalidStatusCodeException(HttpStatusCode receivedStatusCode, string apiUrl)
{
ReceivedStatusCode = receivedStatusCode;
ApiUrl = apiUrl;
}
}
在某些情况下抛出它:
string url = "api/group/1/getAll";
var response = await _client.GetAsync(url);
if (!response.IsSuccessStatusCode)
throw new InvalidStatusCodeException(response.StatusCode, url);
如果我捕获并记录此异常:
catch(InvalidStatusCodeException status_ex)
{
string error = $"Invalid Status code for request: '{status_ex.ApiUrl}', received code: {status_ex.ReceivedStatusCode}";
log.LogError(status_ex, error, "InvalidStatusCode");
}
我没有看到我的自定义属性(ReceivedStatusCode、ApiUrl)的值,只能在错误消息中看到详细信息。
如果我根本没有捕捉到这个异常并且异常被自动记录,那么根本无法查看详细信息。
有什么方法可以在不额外捕获异常的情况下查看这些自定义属性?
【问题讨论】:
-
“我看不到自定义属性的值”在哪里看不到?观察窗?调试窗口?输出?
-
@Charlieface 添加了
-
@OlegSh,也可以考虑使用this method。
标签: c# azure-application-insights