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块捕获,除非您在函数(代码中的Main
函数)上指定属性[HandleProcessCorruptedStateExceptions]
。当然,也可以像Oxoron描述的那样通过修改配置文件来完成相同的操作。
尝试添加
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
到配置文件。源。
你的代码中的一个问题是,你抛出System.ArgumentException
从背景线程上会话处理;这样的异常不会被主线程上的异常处理程序捕获。
除此之外,你现在写代码的方式就是错误的;调用Startup
,然后立即调用Shutdown
将没有任何用处。