Try/Catch不能捕获异常

本文关键字:捕获异常 不能 Catch Try | 更新日期: 2023-09-27 17:50:55

我有FiddlerApplication项目,为我节省了一些会话。当我启动程序时,重启后首次启动100%失败,然后10%失败,90%成功。

最大的问题是当它失败时,它没有捕捉到try/catch中的任何异常。这是我的代码

static class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        try
        {
            browserToRun.GoTo("www.test.com"); 
            FiddlerApplication.AfterSessionComplete +=  FiddlerApplication_AfterSessionComplete;
            //HERE it fails
            FiddlerApplication.Startup(8888, true, true, true);
            FiddlerApplication.Shutdown();
        }
        catch (Exception ex)
        {
            // it is not getting to here
            FiddlerApplication.AfterSessionComplete -= FiddlerApplication_AfterSessionComplete;
            FiddlerApplication.Shutdown();
        }
    }
    public static void FiddlerApplication_AfterSessionComplete(Session sess)
    {
        try
        {
            if (!sess.fullUrl.Contains("test"))
            return;
            GlobalDownloadLink = sess.fullUrl;
        }
        catch (Exception ex)
        {
            successful = false;
            throw new System.ArgumentException(ex.Message, "FiddlerApplication_AfterSessionComplete");
        }
    }
}

我的新更新的Apconfigwith新的错误配置系统初始化失败

<configuration>
  <runtime>
    <legacyCorruptedStateExceptionsPolicy enabled="true" />
  </runtime>
<configSections>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
  <appSettings>
    <add key="BrowserShow" value="Y"/>
    <add key="DebugCreate" value="true"/>
    <add key="FileName10" value="AccountActivity"/>
    <add key="FileName20" value="ForeignActivities"/>
    <add key="FileNameShar" value="MatbeotSchirim"/>
  </appSettings>
</configuration>

Try/Catch不能捕获异常

某些异常不会被try..catch块捕获,除非您在函数(代码中的Main函数)上指定属性[HandleProcessCorruptedStateExceptions]。当然,也可以像Oxoron描述的那样通过修改配置文件来完成相同的操作。

尝试添加 <runtime> <legacyCorruptedStateExceptionsPolicy enabled="true" /> </runtime>

到配置文件。源。

你的代码中的一个问题是,你抛出System.ArgumentException背景线程上会话处理;这样的异常不会被主线程上的异常处理程序捕获。

除此之外,你现在写代码的方式就是错误的;调用Startup,然后立即调用Shutdown将没有任何用处。