Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net AppDomain.CurrentDomain.UnhandledException不';I don’我不总是激动_.net - Fatal编程技术网

.net AppDomain.CurrentDomain.UnhandledException不';I don’我不总是激动

.net AppDomain.CurrentDomain.UnhandledException不';I don’我不总是激动,.net,.net,我在应用程序中遇到了一个根本没有处理的异常。我真的不知道该找什么来调试这个问题,因为当抛出这个特殊异常时(甚至从VS运行),应用程序会立即关闭。异常处理是这样设置的: [STAThread] [LoaderOptimizationAttribute(LoaderOptimization.MultiDomainHost)] static void Main() { Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchE

我在应用程序中遇到了一个根本没有处理的异常。我真的不知道该找什么来调试这个问题,因为当抛出这个特殊异常时(甚至从VS运行),应用程序会立即关闭。异常处理是这样设置的:

[STAThread]
[LoaderOptimizationAttribute(LoaderOptimization.MultiDomainHost)]
static void Main()
{
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ApplicationExit += new EventHandler(ApplicationExitHandler);
Application.ThreadException += new ThreadExceptionEventHandler(ThreadExceptionHandler);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);
...
Thread executerThread = new Thread(new ThreadStart(modele.Exporter));
executerThread.SetApartmentState(ApartmentState.STA);
executerThread.Start();
引发异常的线程以这种方式启动:

[STAThread]
[LoaderOptimizationAttribute(LoaderOptimization.MultiDomainHost)]
static void Main()
{
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ApplicationExit += new EventHandler(ApplicationExitHandler);
Application.ThreadException += new ThreadExceptionEventHandler(ThreadExceptionHandler);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);
...
Thread executerThread = new Thread(new ThreadStart(modele.Exporter));
executerThread.SetApartmentState(ApartmentState.STA);
executerThread.Start();
现在,每个从该线程抛出的未处理异常都会触发我们的未处理异常处理程序,但我遇到问题的除外。即使我捕获了有问题的异常并再次抛出它,应用程序也会以静默方式关闭。3个处理程序(ApplicationExit、ThreadException、UnhandleException)均未被激发(未命中断点)


在该异常中没有什么异常(请参阅此处的详细信息:)。

您正在使用OleDb提供程序,它可以调用本机代码。如果本机代码因某种类型的异常而失败,CLR可以无声地关闭进程。我在OleDb provider for Sybase方面遇到了一些常见问题,我相信只有一些解决方法可以帮助您,而不是特定的解决方案。

您几乎肯定是正确的。我所能做的最好的事情就是捕获并直接在线程中处理异常。这意味着我们不能信任AppDomain.CurrentDomain.UnhandledException来记录所有事情。我仍然觉得奇怪的是,如果我捕获到异常,应用程序仍然可以正常工作。这就好像在某个地方设置了一个标志,上面写着“下次当您遇到未处理的异常时,请关闭”。这没有多大意义。