• 委托的异常处理


    2008-06-30 00:27

    //如果一个未经处理的异常在一个多播委托中被引发,会发生什么事情呢?如果该委托在一个保护代码块
    //中被调用,异常将可以被捕获。直到异常发生,调用列表才会被调用,在调用列表随后的函数将不会被
    //执行。如果异常在一个异步执行的委托中被引发,情况可能会显得更复杂。在这样的情况下,异常是
    //在一个不同的线程中被引发。但是,运行时会将异常带回正在调用的线程。异常就像委托被同步调用到
    //一样
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace 委托的异常
    {
        public delegate void DelegateClass();
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Running on primary thread");
                try
                {
                    DelegateClass del = MethodA;
                    IAsyncResult ay= del.BeginInvoke(null,null);
                    del.EndInvoke(ay);
                }
                catch (Exception except)
                {
                    Console.WriteLine("running on a primary thread");
                    Console.WriteLine("exception caught:" + except.Message);
                }
            }
            public static void MethodA()
            {
                if (Thread.CurrentThread.IsThreadPoolThread == true)
                {
                    Console.WriteLine("running on a threadpool thread");
                }
                else
                {
                    Console.WriteLine("running on a primary thread");
                }
                throw new Exception("failure");
            }
        }
    }


    作者:玄魂
    出处:http://www.cnblogs.com/xuanhun/
    原文链接:http://www.cnblogs.com/xuanhun/ 更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    密码朋克的社会实验(一):开灯看暗网
    ThinkPHP5框架缺陷导致远程命令执行(POC整合帖)
    SQL基本注入演示
    从SQL注入到内网漫游
    业务逻辑漏洞探索之敏感信息泄露
    Web安全之XSS Platform搭建及使用实践
    iOS URL Schemes与漏洞的碰撞组合
    phpcms2008远程代码执行漏洞
    使用RSA加密在Python中逆向shell
    源码级调试的XNU内核
  • 原文地址:https://www.cnblogs.com/xuanhun/p/1662384.html
Copyright © 2020-2023  润新知