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注册为单例也会遇到;

  • 相关阅读:
    NYOJ 205
    NYOJ 187
    NYOJ 105
    NUOJ 88
    NYOJ 70
    LL(1)算法
    MATLAB的一些基础知识
    Ubuntu raid5+lvm实验
    空间滤波
    认识weblogic的各个机构
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122305.html
Copyright © 2011-2022 走看看