首页 > 解决方案 > 如何修复捕获 TimeoutException?

问题描述

我怎样才能抓到TimeoutException

我想TimeoutException在 3 秒后赶上。但是在 3 秒后它会打印出来,TimeoutException而这It's too long. Timeout!是预期的。

console application它不抓TimeoutException

public static void work()
{
    Thread.Sleep(3000);
    Console.WriteLine("TimeoutException");
    throw new TimeoutException();
}

public static void Main(string[] args)
{
    try
    {
        ThreadStart th = new ThreadStart(work);
        Thread t = new Thread(th);
        t.Start();
        //Execute SearchProgram
        t.Abort();
    }
    catch (ThreadInterruptedException)
    {
        Console.WriteLine("It's too long. Timeout!");
    }

    Console.WriteLine("Result : ~~~");
}

标签: c#multithreadingtimeoutexception

解决方案


您可能捕获了错误的异常。根据微软文档(https://docs.microsoft.com/fr-fr/dotnet/api/system.timeoutexception?view=netframework-4.8),您应该捕获 TimeOutException 类。


推荐阅读