微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 内置异常处理的任务?

使用任务时,您必须特别注意处理异常,这是一个示例:

class Program
{
    static void Main(string[] args)
    {
        Task<int> task = new Task<int>(Test);
        task.ContinueWith(ExceptionHandler,TaskContinuationoptions.OnlyOnFaulted);
        task.Start();
        Console.ReadLine();
    }

    static int test()
    {
        throw new Exception();
    }

    static void ExceptionHandler(Task<int> task)
    {
        var exception = task.Exception;
        Console.WriteLine(exception);
    }
}

here

我的问题是,是否有任何方法可以创建一个自定义任务来处理(登录服务)所有异常而无需由开发人员手动说明它?某种帮助遗产.

解决方法

您可以创建MyLoggingTask作为Task的子类,实现与您相关的构造函数,或者所有这些构造函数都是安全的(我在.NET Framework 4.5中看到其中的8个),并覆盖Start()方法.

然后用MyLoggingTask替换每个Task用法对子类命名空间的引用,或者使用Task = Your.NameSpace.MyLoggingTask最小化’manual’方面,创建一个实际上属于你自己的类的Task别名.

作为替代方案,您可以创建一个扩展方法public static StartWithLogging< T>(此任务< T>任务)来处理ContinueWith.然后用StartWithLogging()引用扩展类的命名空间替换每个Start()调用.

我担心没有更简单的选择,并且总是需要一定程度的“手动说明”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐