111,120
社区成员
发帖
与我相关
我的任务
分享
[DllImport("xxx.dll")]
private extern static void abc();
[HandleProcessCorruptedStateExceptions]
static void Main(string[] args)
{
try
{
abc();
}
catch (Exception e)
{
//...
}
}
[HandleProcessCorruptedStateExceptions]
static void Main(string[] args)
{
try
{
}
catch (Exception e)
{
}
}
2、在配置文件中启用legacyCorruptedStateExceptionsPolicy属性,如:config:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
</configuration>
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
//处理未捕获的异常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
//记录异常日志
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//记录异常日志
}