zoukankan      html  css  js  c++  java
  • C#.net控制台程序sentry报告异常不及时的问题

    控制台程序中使用sentry发现异常报告不及时,如下:

            private static void Main(string[] args)
            {
               
                using (SentrySdk.Init(sentryDSN))
                {
                    Test();
                }
                Console.WriteLine("开始发送异常");
            }
            private static void Test()
            {
                try
                {
                    var a = 0;
                    Console.WriteLine(1/a);
                }
                catch (Exception e)
                {
                    SentrySdk.CaptureException(e);
                    //主动发送的异常也被缓存,等待sentry.disposed()发送
    
                    throw;
                }
            }

    在sentry作用域结束前,异常不会发送到dsn,上面的控制台程序每次都等到Console.WriteLine("开始发送异常");才开始发送异常;

    解决方案:

    
            private async Task Test()
            {
                try
                {
                    var a = 0;
                    Console.WriteLine(1/a);
                }
                catch (Exception e)
                {
                    SentrySdk.CaptureException(e);
    
                    await SentrySdk.FlushAsync(TimeSpan.FromSeconds(10));
                    //强制刷新,这一句执行完毕异常就会发送
    
                    throw;
                }
            }

    在web程序中未遇到这样的问题,推测把sentry注册为单例也会遇到;

  • 相关阅读:
    Django学习2
    Django学习1
    python 基于tcp协议的文件传输3_解决粘包问题
    python socketserver
    python hashlib
    python struct模块
    python json 模块
    python socket模块
    13暑假集训#10 总结
    hdu 4493 卡输入输出
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122305.html
Copyright © 2011-2022 走看看