c# - 如何编写自定义 C# 属性来处理处理程序中的异常

标签 c#

我创建了一个这样的自定义属性类

    [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/

相关文章:

c# - 查询特定exchange 2013文件夹EWS

c# - Pivot 上的控件消失

c# - 如何确定谁拥有我的应用程序退出时仍在运行的工作线程?

c# - 如何使用属性名称的部分匹配从 JObject 获取值

C#:使用 Python.Runtime 未找到

c# - 列表中的模型绑定(bind)

c# - 应用 MahApps.Metro Dark 主题

c# - List<int> 对象将我的数组打印为 System.int32[]

c# - 使用官方 C# 驱动程序更新 MongoDB 中的嵌入式文档(2 级深)

C# .NET 4.5 - Entity Framework 6.0,MySQL 数据适配器程序集