我创建了一个这样的自定义属性类
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public class AMemento : Attribute
{
public void method(){
try {
}
catch (Exception) {
}}
}
并且我计划在处理程序中使用此自定义属性来捕获发生的任何异常,如下所示
[AMemento]
[Authorize]
public JsonResult GetWeatherData()
{
//// code here which throw an exception
}
我想知道如何完成自定义属性类以捕获在 GetWeatherData() 处理程序中抛出的异常。是否可以像在 python 中那样实现高阶函数?
最佳答案
在 MVC 框架中有 HandleErrorAttribute类(class)。您可以扩展和覆盖 OnException方法。一个很好的例子是 Elmah MVC 中的他们有 HandleErrorAttribute 的项目类。
This question还提供了 HandleErrorAttribute 的一些示例,同样是在 ELMAH 的上下文中,但应该相对明显的是,在覆盖 OnException 时,您可以为 MVC 操作提供自定义异常逻辑。
关于c# - 如何编写自定义 C# 属性来处理处理程序中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839899/