标签: unhandled-exception

在 Docker 容器重新启动时保留日志

因此,我有一个微服务作为 .NET Core 下的 Docker 容器运行,并在将从 EventHub 获取的大量数据写入 SQL Server 时记录到 Azure 上的 Application Insights。

每隔一段时间,我就会收到一个未处理的 SqlException,它似乎是在后台线程上抛出的,这意味着我无法捕获并处理它,也无法修复此错误。

解决方法是将重启策略设置为始终并重新启动服务。这运作良好,但现在我无法在 Application Insights 中跟踪此异常。

我认为未处理的异常是由 CLR 写入 stderr 的,因此它会通过一些 grep 出现在 Docker 日志中,但是有没有办法在启动时检查此异常,然后将其记录到 Application Insights,以便我可以在不登录的情况下发现它Swarm 集群和 grep 来获取重启信息?

unhandled-exception docker .net-core docker-swarm

6
推荐指数
1
解决办法
4375
查看次数

什么时候.NET WinForms应用程序中的异常只是被吃掉而没有被捕获或冒泡到Windows异常?

在我们的代码中的几个地方,我们注意到如果在调试器下运行,它将显示代码中存在未处理的异常,但是如果在调试器外部运行它将完全忽略异常,就好像它被捕获一样.我们有一个异常处理程序,它弹出一个连接到Application.ThreadException和AppDomain.CurrentDomain.UnhandledException的错误提交对话框.这些都不会捕获它们.我们还记录了我们的异常,日志中没有任何内容.

这有什么可能的原因?

编辑:似乎它不依赖于异常抛出的类型,而是它抛出的位置.仅通过添加以下测试:

throw new Exception("Test Exception");
Run Code Online (Sandbox Code Playgroud)

它将显示在调试器下但不会显示在外部,因此在我们的示例中,它不是ThreadAbortedException或任何依赖于它的特定类型的异常.

c# unhandled-exception winforms

5
推荐指数
1
解决办法
865
查看次数

在WCF中捕获未处理的异常

在WCF中,是否存在捕获未处理异常的事件或方法,或者我是否需要在任何方法中放置try/catch?

.net wcf exception-handling unhandled-exception

5
推荐指数
1
解决办法
3874
查看次数

当线程得到未处理的异常时,CLR退出

我的应用程序中有后台线程.当其中一个线程获得未处理的异常时,整个CLR退出.

这是正常的行为,还是CLR中的错误?

我希望线程会退出,但CLR将继续工作.

.net c# clr unhandled-exception

5
推荐指数
2
解决办法
1840
查看次数

我可以在类库中向AppDomain.CurrentDomain.UnhandledException添加处理程序

我想订阅AppDomain.CurrentDomain.UnhandledException事件以捕获任何错误,因为我正在尝试新的设计模式,我不想在每个事件上放置try catch.

通常在win form app中有一个主入口点,但这是一个由另一个应用程序调用的类库.

在类库中是否有一个主要的入口点,我可以在这里挂钩这个事件,或者它是否在类库中是不可能的,除非我确定在其他任何方法之前调用一个方法?

c# class-library unhandled-exception

5
推荐指数
1
解决办法
1151
查看次数

CreateProcess的未处理错误

我正在阅读c ++中的CreateProcess函数,我想尝试一下.代码的基本思想是让我的主要执行另一个进程(记事本).真的,这只是基本代码.当我运行程序时,我得到:

createprocess.exe中0x752bb763处的第一次机会异常:0xC0000005:访问冲突写入位置0x00be57b8.
createprocess.exe中0x752bb763处的未处理异常:0xC0000005:访问冲突写入位置0x00be57b8.

当我为发生错误的位置设置一个断点时,我会被带到tidtable.c(我想这是用于访问线程).特别是在tidtable.c中 CRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue() 我真的不知道是什么或如何避免这个问题.CreateProcess调用发生错误(即,它永远不会输出"out of create").

我的代码是:

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <strsafe.h>
#include <direct.h>
#include <string.h>
#include <conio.h>

int main(VOID)
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

        //allocate memory
    ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));


fprintf(stderr, "This is just a test");

//create child process
if (!CreateProcess(NULL,
    L"C:\\Windows\\Notepad.exe",
    NULL,
    NULL,
    FALSE,
    0,
    NULL,
    NULL,
    &si,
    &pi))
{
        fprintf(stderr, "create process failed");

        return -1;
}
fprintf(stderr, "out of create");

    //parent waits for child to …
Run Code Online (Sandbox Code Playgroud)

c++ winapi createprocess unhandled-exception access-violation

5
推荐指数
1
解决办法
6373
查看次数

序列化代码导致未处理的异常

我正在尝试创建一些代码,可以将类库序列化和反序列化为AutoCAD绘图.这个问题与AutoCAD没什么关系,除了它是我无法通过正常方式调试它的原因.我从这篇文章开始这个项目并成功运行了他的代码.然而,他的代码的结构方式,需要我让我的所有类继承自他的基础对象.因为这显然是代码味道,我知道我需要创建一个界面.下面是我最终得到的代码.

第一部分是负责序列化到AutoCAD绘图中的代码.

第二部分是实现我的自定义序列化接口的类的示例

public class Commands
{
    public class MyUtil
    {

        const int kMaxChunkSize = 127;

        public ResultBuffer StreamToResBuf(MemoryStream ms, string appName)
        {

            ResultBuffer resBuf = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataRegAppName, appName));

            for (int i = 0; i < ms.Length; i += kMaxChunkSize)
            {

                int length = (int)Math.Min(ms.Length - i, kMaxChunkSize);

                byte[] datachunk = new byte[length];

                ms.Read(datachunk, 0, length);

                resBuf.Add(new TypedValue((int)DxfCode.ExtendedDataBinaryChunk, datachunk));
            }

            return resBuf;
        }

        public MemoryStream ResBufToStream(ResultBuffer resBuf)
        {

            MemoryStream ms = new MemoryStream();

            TypedValue[] values = resBuf.AsArray(); …
Run Code Online (Sandbox Code Playgroud)

c# serialization autocad unhandled-exception autocad-plugin

5
推荐指数
1
解决办法
937
查看次数

捕获未处理的异常,仍然显示"程序停止工作"对话框

在这篇文章中读过,为了避免"程序停止工作"对话框,我需要从AppDomain中捕获未处理的异常.

 public Form1()
 {
  ///Code
   AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
  ///more code
 }

     void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        var excep = e.ExceptionObject;

        //Writing the exception to log file with the stack flow
        Logger.Logger.LogException("UNHANDLED EXCEPTION:"+Environment.NewLine +excep.ToString(), this);

        //Terminate the logger (manual event waiting for file write to finish)
        Logger.Logger.Terminate();
        Environment.Exit(1);
    }
Run Code Online (Sandbox Code Playgroud)

但是当我被吸入异常时.我可以看到它写在日志上,但应用程序显示"程序停止工作"对话框.它可以由Logger.Terminate线路引起吗?(再次 - terminate命令等待,直到所有日志都写入日志文件)

c# exception unhandled-exception winforms

5
推荐指数
1
解决办法
693
查看次数

未处理的拒绝错误Bluebird

我有以下代码.并且它可以按预期工作,而不会抛出未处理的拒绝错误.

p = new Promise (fulfill, reject) ->
  reject new Error 'some error'

p.catch (error) ->
  console.log error
Run Code Online (Sandbox Code Playgroud)

现在,第二个代码示例会抛出未处理的拒绝错误.当有人清楚地处理错误时,有人可以向我解释为什么会发生这种情况.

p = new Promise (fulfill, reject) ->
  reject new Error 'some error'

p.then ->
  console.log 'ok'

p.catch (error) ->
  console.log error
Run Code Online (Sandbox Code Playgroud)

顺便说一句.我正在测试chrome和bluebird v3.4.7

javascript unhandled-exception coffeescript bluebird es6-promise

5
推荐指数
1
解决办法
6133
查看次数

Direct2D:WM_RESIZE开关案例中的未处理异常

我正在创建一个简单的Direct2D应用程序.不幸的是,它给出了一个未处理的例外.它发生的功能:

    void DemoApp::OnResize(UINT width, UINT height)
{
    if (m_pRenderTarget) <----|****The exception occurs here.....****
    {
        // Note: This method can fail, but it's okay to ignore the
        // error here, because the error will be returned again
        // the next time EndDraw is called.
        m_pRenderTarget->Resize(D2D1::SizeU(width, height));
    }
}
Run Code Online (Sandbox Code Playgroud)

调用OnResize()的代码片段是:

DemoApp *pDemoApp = reinterpret_cast<DemoApp *>(static_cast<LONG_PTR>(
            ::GetWindowLongPtrW(
                hwnd,
                GWLP_USERDATA
            )));

        bool wasHandled = false;

        if (pDemoApp)
        {
            switch (message)
            {
            case WM_SIZE:
            {
                UINT width = LOWORD(lParam);
                UINT height = HIWORD(lParam); …
Run Code Online (Sandbox Code Playgroud)

c++ directx msdn unhandled-exception direct2d

5
推荐指数
1
解决办法
200
查看次数