c# - 如何使用 OnException 方面(PostSharp)继续方法流程?

标签 c# visual-studio exception-handling aop postsharp

我有以下代码:

[Serializable]
    class ExceptionAspectHandler:OnExceptionAspect
    {
        public override void OnException(MethodExecutionArgs args)
        {
            Console.WriteLine("{0}", args.Exception);
            args.FlowBehavior = FlowBehavior.Continue;
        }
    }

    [OnExceptionAspect]
    public static void divide()
            {
                int n = Convert.ToInt32(Console.ReadLine());
                var a = 100 / n; //the exception happens here
                Console.WriteLine("it should get here");
            }

使用 FlowBehavior.Continue 结束 divide() 并返回到 main() 方法。

最佳答案

请记住,OnException 方面将您的代码包装在 try/catch 中,因此代码将从捕获继续(而不是重新抛出)并且其行为将默认返回。您是否希望它从抛出异常的地方继续?如果是这样,您需要自己在 try/catch 中显式包装该行。

请阅读http://www.sharpcrafters.com/blog/post/Day-6-Your-code-after-PostSharp.aspx了解更多详情。

关于c# - 如何使用 OnException 方面(PostSharp)继续方法流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553088/

相关文章:

c# - 如何使 Flash ActiveX 控件在部署机器上兼容?

时间:2019-03-17 标签:c#mysqlStoredProcedureInsert返回值

c++ - Voro++可以在Visual Studio中编译吗

c# - WinForms - 在 TableLayoutPanel 中重叠两个控件

asp.net - 如何从异常中获取更多详细信息?

windows - 在 Windows 64 位上实现带有自定义堆栈的沙箱

c# - 使用 HTTPStatusCodeResult 和 jQuery 的自定义错误消息

sql-server - VS2013 数据库项目 - 忽略匹配过滤器的模式/表?

c# - 如何处理未经检查的异常?

java - C# 调用 Java 代码加载非托管 dll