Skip to content

Commit ddd6af0

Browse files
committed
Added sample for closing app after throwing an exception
1 parent 96048dd commit ddd6af0

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

Source/Samples/SampleWpf/MainWindow.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
Click="OnGenerateThreadException" />
3838
<MenuItem Header="Handled Thread Exception"
3939
Click="OnHandledThreadException" />
40+
<MenuItem Header="Close After Throwing Exception"
41+
Click="OnGenerateExceptionAndClose" />
4042
<MenuItem Header="Start Flooding Queue" x:Name="FloodQueueMenuItem" Click="OnFloodQueue" />
4143
<Separator />
4244
<MenuItem Header="Import Demo Reports"

Source/Samples/SampleWpf/MainWindow.xaml.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,20 @@
55
using System.Threading.Tasks;
66
using System.Windows;
77
using Exceptionless.Models.Collections;
8+
using Exceptionless.Plugins;
89

910
namespace Exceptionless.SampleWpf {
1011
public partial class MainWindow : Window {
12+
private const string FORCE_CLOSE_APPLICATION_KEY = "ForceCloseApplication";
13+
1114
public MainWindow() {
1215
InitializeComponent();
1316

1417
ExceptionlessClient.Default.SubmittingEvent += OnSubmittingEvent;
18+
ExceptionlessClient.Default.SubmittedEvent += OnSubmittedEvent;
1519
ExceptionlessClient.Default.Configuration.Settings.Changed += SettingsOnChanged;
1620
}
17-
21+
1822
private void SettingsOnChanged(object sender, ChangedEventArgs<KeyValuePair<string, string>> args) {
1923
WriteLog("Configuration updated.");
2024
}
@@ -29,6 +33,13 @@ private void OnSubmittingEvent(object sender, EventSubmittingEventArgs e) {
2933
else
3034
WriteLog("Submitting Event");
3135
}
36+
37+
private void OnSubmittedEvent(object sender, EventSubmittedEventArgs e) {
38+
if (e.PluginContextData.ContainsKey(FORCE_CLOSE_APPLICATION_KEY)) {
39+
WriteLog("Shutting down application");
40+
Application.Current.Shutdown();
41+
}
42+
}
3243

3344
private void WriteLog(string message) {
3445
if (logTextBox.Dispatcher.CheckAccess())
@@ -71,6 +82,15 @@ private void OnImportDemoReports(object sender, RoutedEventArgs e) {}
7182
private void OnProcessQueue(object sender, RoutedEventArgs e) {
7283
ExceptionlessClient.Default.ProcessQueueAsync();
7384
}
85+
86+
private void OnGenerateExceptionAndClose(object sender, RoutedEventArgs e) {
87+
try {
88+
throw new Exception("TEST!");
89+
} catch (Exception ex) {
90+
var pluginContextData = new ContextData { { FORCE_CLOSE_APPLICATION_KEY, true } };
91+
ex.ToExceptionless(pluginContextData).Submit();
92+
}
93+
}
7494

7595
private void OnGenerateThreadException(object sender, RoutedEventArgs e) {
7696
var t = new Thread(() => {

0 commit comments

Comments
 (0)