【发布时间】:2019-01-28 19:51:50
【问题描述】:
在我的 api 中,我有一个包含操作的标准控制器,该操作调用服务,然后调用客户端以联系其他第三方 api。
我希望实现类似于以下内容的异常过滤器:
public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
private readonly IHostingEnvironment _hostingEnvironment;
private readonly IModelMetadataProvider _modelMetadataProvider;
public CustomExceptionFilterAttribute(
IHostingEnvironment hostingEnvironment,
IModelMetadataProvider modelMetadataProvider)
{
_hostingEnvironment = hostingEnvironment;
_modelMetadataProvider = modelMetadataProvider;
}
public override void OnException(ExceptionContext context)
{
if (!_hostingEnvironment.IsDevelopment())
{
// do nothing
return;
}
var result = new ViewResult {ViewName = "CustomError"};
result.ViewData = new ViewDataDictionary(_modelMetadataProvider,context.ModelState);
result.ViewData.Add("Exception", context.Exception);
// TODO: Pass additional detailed data via ViewData
context.Result = result;
}
}
如果我的客户端类例如抛出异常,过滤器是否会立即被调用,即使我调用客户端类的服务类已经准备好捕获此类异常?
【问题讨论】:
-
请提供一些代码。
-
我将添加与问题中链接的完全相同的代码。我认为这就足够了。
-
我不知道你在问什么。
-
根据问题的最后两行,我认为这不会更清楚。
-
请提供minimal reproducible example。
client是谁?
标签: c# asp.net-core .net-core