Explorar o código

Added try catches to analytics stuff

Krzysztof Krysiński hai 5 meses
pai
achega
d012ed7588

+ 6 - 3
src/PixiEditor/Helpers/CrashHelper.cs

@@ -190,10 +190,13 @@ internal partial class CrashHelper
         {
             return;
         }
-        
-        using var analyticsClient = new AnalyticsClient(analyticsUrl);
 
-        await analyticsClient.SendReportAsync(report.ApiReportJson);
+        try
+        {
+            using var analyticsClient = new AnalyticsClient(analyticsUrl);
+            await analyticsClient.SendReportAsync(report.ApiReportJson);
+        }
+        catch { }
     }
 
     /// <summary>

+ 20 - 5
src/PixiEditor/Models/AnalyticsAPI/AnalyticsPeriodicReporter.cs

@@ -57,7 +57,15 @@ public class AnalyticsPeriodicReporter
     {
         await _cancellationToken.CancelAsync();
 
-        await _client.EndSessionAsync(SessionId).WaitAsync(TimeSpan.FromSeconds(1));
+        try
+        {
+            await _client.EndSessionAsync(SessionId).WaitAsync(TimeSpan.FromSeconds(1));
+        }
+        catch (TaskCanceledException) { }
+        catch (Exception e)
+        {
+            await SendExceptionAsync(e);
+        }
     }
 
     public void AddEvent(AnalyticEvent value)
@@ -87,14 +95,21 @@ public class AnalyticsPeriodicReporter
     {
         if (!_resumeSession)
         {
-            var createSession = await _client.CreateSessionAsync(_cancellationToken.Token);
+            try
+            {
+                var createSession = await _client.CreateSessionAsync(_cancellationToken.Token);
+                if (!createSession.HasValue)
+                {
+                    return;
+                }
 
-            if (!createSession.HasValue)
+                SessionId = createSession.Value;
+            }
+            catch (Exception e)
             {
+                await SendExceptionAsync(e);
                 return;
             }
-
-            SessionId = createSession.Value;
         }
 
         Task.Run(RunHeartbeatAsync);