标签: unhandled-exception

来自未处理异常的c ++堆栈跟踪?

之前已经问过这个问题,并且有特定于Windows的答案,但没有令人满意的gcc答案.我可以set_terminate()用来设置一个函数,terminate()当抛出未处理的异常时,该函数将被调用(代替).我知道如何使用backtrace库从程序中的给定点生成堆栈跟踪.但是,当我的终止替换被调用时,这将无济于事,因为此时堆栈已被解除.

然而,如果我只是允许程序abort(),它将产生一个核心转储,其中包含从抛出异常的点开始的完整堆栈信息.所以信息就在那里 - 但是有没有一种编程方式来获取它,例如它可以被记录,而不是必须检查核心文件?

c++ callstack exception-handling stack-trace unhandled-exception

31
推荐指数
1
解决办法
2万
查看次数

.NET中UnhandledException和DispatcherUnhandledException之间的区别

.NET中的AppDomain.UnhandledExceptionApplication.DispatcherUnhandledException有什么区别?

我需要一个在发生任何未处理的异常时触发的事件.我遇到过这两个,但我不知道他们在哪些方面彼此不同.还有,有没有被解雇的情况?

.net c# wpf exception-handling unhandled-exception

24
推荐指数
2
解决办法
5914
查看次数

从异步中捕获未处理的异常

async等待的方法抛出异常时,异常存储在某处并且抛出它会被延迟.在WinForms或WPF应用程序中,它用于SynchronizationContext.Current发布抛出异常.但是,在例如控制台应用程序中,它会在线程池上抛出异常并关闭应用程序.

如何防止async方法抛出的异常导致应用程序崩溃?

编辑:

我正在描述的问题显然是因为我有void async方法.看评论.

.net c# unhandled-exception async-await

21
推荐指数
2
解决办法
1万
查看次数

在WPF中捕获子线程中的未处理异常

我有一个WPF应用程序,可以旋转几个线程.我在App.xaml.cs中定义了一个DispatcherUnhandledException事件处理程序,它显示详细的错误消息,每次UI线程遇到异常时都会调用此处理程序.问题在于子线程:它们未处理的异常永远不会得到处理.我该怎么做呢?

示例代码:

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
    MessageBox.Show("detailed error message");
}

private void Application_Startup(object sender, StartupEventArgs e)
{
    //...
    //If an Exception is thrown here, it is handled
    //...

    Thread[] threads = new Thread[numThreads];
    for(int i = 0; i < numThreads; i++)
    {
        threads[i] = new Thread(doWork);
        threads[i].Start();
    }
}

private void doWork()
{
    //...
    //Exception thrown here and is NOT handled
    //...
}
Run Code Online (Sandbox Code Playgroud)

编辑:一旦发生未处理的异常,我想显示带有堆栈跟踪的错误消息,然后退出应用程序.

c# wpf multithreading exception-handling unhandled-exception

19
推荐指数
1
解决办法
8542
查看次数

捕获另一个进程未处理的异常

我想知道我是否可以捕获由我开始使用Process.Start(...)的另一个进程抛出的未处理异常

我知道我可以使用此链接捕获standered错误,但我想要的是捕获通常由.NET环境的Just In Time调试器捕获的错误,该窗口包含以下单词:"发生了未处理的异常在你的应用程序中.如果你继续,应用程序将忽略此错误并尝试继续.如果你单击退出,应用程序将立即关闭...."然后是异常消息,然后是"继续", "退出"按钮.

c# error-handling unhandled-exception launching-application

18
推荐指数
2
解决办法
2万
查看次数

在ASP.NET MVC中,在我看来,最好的展示未处理的异常是什么?

我在web.config中有以下内容:

 <customErrors mode="On" defaultRedirect="Error">
  <error statusCode="404" redirect="Error/NotFound" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

我有一个

 [HandleError]
Run Code Online (Sandbox Code Playgroud)

在我的HomeController类的顶部.为了测试,我创建了一个简单抛出异常的动作..它重定向到我的

 ErrorController/Index
Run Code Online (Sandbox Code Playgroud)

方法,但当它到达我的视图绑定到HandleErrorInfo我的模型为null所以我不知何故失去了对错误的引用.

我确信它与错误在重定向中丢失有关,所以我想看看我是否遗漏了一些东西,如果有人有建议我可以有一个显示Stacktrace和错误消息的视图.

c# asp.net-mvc unhandled-exception asp.net-mvc-4 asp.net-mvc-5

18
推荐指数
2
解决办法
2万
查看次数

没有堆栈跟踪的异常 - 如何?

我们有一项服务,它将在应用程序域级别(通过Log4net)记录未处理的异常.

我们记录了:

2014-01-28 16:49:19,636 ERROR [49] FeedWrapperService - 未处理的System.NullReferenceException:未将对象引用设置为对象的实例.

此异常没有堆栈跟踪.如果不对异常对象做一些疯狂的事情,这怎么可能呢?

我们的处理代码:

AppDomain.CurrentDomain.UnhandledException += LogAnyExceptions;

private void LogAnyExceptions(object sender, UnhandledExceptionEventArgs e)
{
    log.Error("unhandled", (Exception)e.ExceptionObject);
    throw (Exception)e.ExceptionObject;
}
Run Code Online (Sandbox Code Playgroud)

在我看来,重新抛出这一点毫无意义,因为AppDomain无论如何都会随着进程而下降,但我认为它不会影响我们的情况.

Windows应用程序事件查看器也只显示此null ref异常并且没有跟踪.

我已经测试了异常处理程序日志记录,它成功记录了堆栈跟踪和任何内部异常.如果它被我们的代码抛出,我们会看到堆栈跟踪.如果它被第三方c#库抛出,那么,我们再次看到至少一个方法的堆栈跟踪(无论是否是重新抛出的异常).在这里,我们看到一个没有堆栈跟踪的托管异常.我不知道这是怎么可能的.

查看反编译的第三方库,它与非托管代码进行对话,引发此异常的事件可能在非托管域中,但是如果没有堆栈跟踪,这种情况怎么会导致托管的空引用异常?

这个问题的原因是间歇性的.我们已经将这段代码在生产中运行了几个月,并且看过它曾经这样做过.这非常怪异.

普遍的共识是,应该将负责此类问题的系统推送到子进程中,这样我们就可以处理问题并安全地自动重启,但知道发生了什么事情会很好.

编辑以包含以下评论信息:

我的异常不是标准的重新抛出,因为堆栈跟踪是null或空.它没有重新投掷方法的名称.进一步挖掘,Exception类可以从序列化信息构造,看起来序列化信息可能包含堆栈跟踪的空字符串,并且可能创建它而不会导致其他错误.我想它可能来自那里,但我不知道它是如何起源的.

c# exception stack-trace unhandled-exception

17
推荐指数
3
解决办法
1万
查看次数

ValueError:没有迁移的应用程序的依赖关系:customuser

我正在尝试使用框架django启动webproject,这是我的第一个web开发项目.

在创建项目之后,我试图创建一个创建自定义用户的应用程序,并使用django-registration进行电子邮件验证注册

我得到的结果manage runserver如下图所示:

PowerShell上的结果

这是我的models.py文件包含的内容

from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils.translation import ugettext_lazy as _
class User(AbstractUser):
    username = models.CharField(max_length=255, unique=True, verbose_name=_("Username")) 
    email = models.EmailField(unique=True, verbose_name=_("Email Address"))
    favorite_animal = models.CharField(max_length=255, verbose_name=_("Favorite Animal"))
Run Code Online (Sandbox Code Playgroud)

python django unhandled-exception python-3.x django-migrations

17
推荐指数
3
解决办法
1万
查看次数

AppDomain.CurrentDomain.UnhandledException未在没有调试的情况下触发

我有一个.NET程序,其事件处理程序绑定到Application.CurrentDomain.UnhandledException.使用调试运行程序时,抛出未处理的异常时会触发此事件.但是,在没有调试的情况下运行时,事件不会触发.

我的问题是什么?

谢谢,安德鲁

.net exception unhandled-exception

14
推荐指数
1
解决办法
1万
查看次数

无限循环使TimeManager无效

我在WPF应用程序中遇到了一个非常棘手的缺陷,需要跟踪.错误消息是:

在布局/渲染过程中反复使TimeManager失效会导致无限循环.

堆栈跟踪(它的价值)是:

在System.Windows.Media.MediaContext.RenderMessageHandlerCore(对象resizedCompositionTarget)在System.Windows.Media.MediaContext.RenderMessageHandler(对象resizedCompositionTarget)在System.Windows.Threading.ExceptionWrapper.InternalRealCall(代表回调,对象指定参数时,的Int32 numArgs)在MS .Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source,Delegate方法,Object args,Int32 numArgs,Delegate catchHandler)

这是一个间歇性的缺陷,我唯一可以捕获它的地方是在app配置文件中,我正在捕获Application_DispatcherUnhandledException消息.我在我的应用程序中的所有内容都包含在try catch块中,然而这些内容最终会被捕获到未处理的异常中.

有没有人对此有任何见解?我在互联网上搜索了一些东西并且没有发现任何东西,并且想到这里可能有人可能有一些见解或想法如何追踪这一点.目前,我正在吞下这个异常并让应用程序继续运行,因为它似乎对它没有任何影响(除了崩溃).

c# wpf exception-handling infinite-loop unhandled-exception

14
推荐指数
1
解决办法
2072
查看次数