任务错误处理- Visual studio停止

本文关键字:studio 停止 Visual 错误 处理 任务 | 更新日期: 2023-09-27 17:49:42

所以基本上我想在c#中测试任务。

我的代码如下:
    Task tm = new Task(Test);
    tm.ContinueWith(ExceptionHandler, TaskContinuationOptions.OnlyOnFaulted);
    tm.Start();

    void ExceptionHandler(Task task)
    {
        var ex = task.Exception;
        ex.Handle((x) =>
            {
                if(x is PictureNotRecognized)
                {
                    MessageBox.Show(String.Format("An exception occured" + Environment.NewLine + "Program aborted: {0}" + Environment.NewLine + "Step: {1}" + Environment.NewLine + "Error Message: {2}", (x as PictureNotRecognized).Aborted, (x as PictureNotRecognized).CurrentStep, (x as PictureNotRecognized).Message));
                    return true;
                }
                return false;
            });
    }
    void Test()
    {
        throw new Exception();
    }

所以,当我运行应用程序时,它抛出异常,visual studio停止。只有当我再次按F5时,它才继续并跳转到ExceptionHandler。如何在Visual studio中禁用此功能?如果异常是由使用throw new XXXX

任务错误处理- Visual studio停止

的用户创建的,它应该不会中断程序

您可以在调试->异常->命令语言运行时异常->系统->系统中禁用异常中断。异常->取消勾选"User-unhandled".

除非只有在调试时才会中断,用户不会注意到异常中断!但是Visual Studio注意到你没有像Try Catch构造那样处理异常。有关使用Task的异常处理的更多信息,请参阅:

http://msdn.microsoft.com/en-us/library/dd997415 (v = vs.110) . aspx

http://msdn.microsoft.com/en-us/library/dd537614 (v = vs.110) . aspx