Skip to content

Commit 899d80d

Browse files
committed
Improve exception processing for track handlers.
1 parent 82ec439 commit 899d80d

5 files changed

Lines changed: 70 additions & 119 deletions

File tree

src/QSP/RouteFinding/AirwayNetwork.cs

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using QSP.RouteFinding.Tracks.Pacots;
99
using System;
1010
using System.Threading.Tasks;
11-
using static QSP.Utilities.ExceptionHelpers;
1211

1312
namespace QSP.RouteFinding
1413
{
@@ -89,20 +88,17 @@ public void Update(WaypointList wptList, AirportManager airportList)
8988

9089
if (natsData != null)
9190
{
92-
IgnoreExceptions(() =>
93-
natsManager.GetAllTracks(new NatsProvider(natsData)));
91+
natsManager.GetAllTracks(new NatsProvider(natsData));
9492
}
9593

9694
if (pacotsData != null)
9795
{
98-
IgnoreExceptions(() =>
99-
pacotsManager.GetAllTracks(new PacotsProvider(pacotsData)));
96+
pacotsManager.GetAllTracks(new PacotsProvider(pacotsData));
10097
}
10198

10299
if (ausotsData != null)
103100
{
104-
IgnoreExceptions(() =>
105-
ausotsManager.GetAllTracks(new AusotsProvider(ausotsData)));
101+
ausotsManager.GetAllTracks(new AusotsProvider(ausotsData));
106102
}
107103

108104
if (natsEnabled) natsManager.AddToWaypointList();
@@ -210,13 +206,8 @@ public NatsMessage NatsMessage
210206
{
211207
StatusRecorder.Clear(TrackType.Nats);
212208
natsManager.UndoEdit();
213-
214-
try
215-
{
216-
natsManager.GetAllTracks(new NatsProvider(value));
217-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
218-
}
219-
catch { }
209+
natsManager.GetAllTracks(new NatsProvider(value));
210+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
220211
}
221212
}
222213

@@ -228,13 +219,8 @@ public PacotsMessage PacotsMessage
228219
{
229220
StatusRecorder.Clear(TrackType.Pacots);
230221
pacotsManager.UndoEdit();
231-
232-
try
233-
{
234-
pacotsManager.GetAllTracks(new PacotsProvider(value));
235-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
236-
}
237-
catch { }
222+
pacotsManager.GetAllTracks(new PacotsProvider(value));
223+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
238224
}
239225
}
240226

@@ -246,13 +232,8 @@ public AusotsMessage AusotsMessage
246232
{
247233
StatusRecorder.Clear(TrackType.Ausots);
248234
ausotsManager.UndoEdit();
249-
250-
try
251-
{
252-
ausotsManager.GetAllTracks(new AusotsProvider(value));
253-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
254-
}
255-
catch { }
235+
ausotsManager.GetAllTracks(new AusotsProvider(value));
236+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
256237
}
257238
}
258239

@@ -261,38 +242,26 @@ public async Task DownloadNats()
261242
StatusRecorder.Clear(TrackType.Nats);
262243
natsManager.UndoEdit();
263244

264-
try
265-
{
266-
await natsManager.GetAllTracksAsync();
267-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
268-
}
269-
catch { }
245+
await natsManager.GetAllTracksAsync();
246+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
270247
}
271248

272249
public async Task DownloadPacots()
273250
{
274251
StatusRecorder.Clear(TrackType.Pacots);
275252
pacotsManager.UndoEdit();
276253

277-
try
278-
{
279-
await pacotsManager.GetAllTracksAsync();
280-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
281-
}
282-
catch { }
254+
await pacotsManager.GetAllTracksAsync();
255+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
283256
}
284257

285258
public async Task DownloadAusots()
286259
{
287260
StatusRecorder.Clear(TrackType.Ausots);
288261
ausotsManager.UndoEdit();
289262

290-
try
291-
{
292-
await ausotsManager.GetAllTracksAsync();
293-
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
294-
}
295-
catch { }
263+
await ausotsManager.GetAllTracksAsync();
264+
TrackMessageUpdated?.Invoke(this, EventArgs.Empty);
296265
}
297266

298267
private class NatsProvider : INatsMessageProvider

src/QSP/RouteFinding/Tracks/Ausots/AusotsHandler.cs

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using QSP.RouteFinding.Routes.TrackInUse;
44
using QSP.RouteFinding.Tracks.Common;
55
using QSP.RouteFinding.Tracks.Interaction;
6-
using System;
76
using System.Collections.Generic;
87
using System.Threading.Tasks;
98

@@ -19,7 +18,7 @@ public class AusotsHandler : TrackHandler
1918
private List<TrackNodes> nodes = new List<TrackNodes>();
2019
public bool AddedToWptList { get; private set; } = false;
2120
public AusotsMessage RawData { get; private set; }
22-
21+
2322
public AusotsHandler(
2423
WaypointList wptList,
2524
WaypointListEditor editor,
@@ -37,31 +36,29 @@ public AusotsHandler(
3736
/// <summary>
3837
/// Download and parse all track messages.
3938
/// </summary>
40-
/// <exception cref="TrackParseException"></exception>
41-
/// <exception cref="GetTrackException"></exception>
4239
public override void GetAllTracks()
4340
{
44-
DownloadAndReadTracks(new AusotsDownloader());
41+
GetAndReadTracks(new AusotsDownloader());
4542
UndoEdit();
4643
}
4744

48-
/// <exception cref="TrackParseException"></exception>
49-
/// <exception cref="GetTrackException"></exception>
5045
public void GetAllTracks(IAusotsMessageProvider provider)
5146
{
52-
DownloadAndReadTracks(provider);
47+
GetAndReadTracks(provider);
5348
UndoEdit();
5449
}
5550

56-
/// <exception cref="TrackParseException"></exception>
57-
/// <exception cref="GetTrackException"></exception>
58-
private void DownloadAndReadTracks(IAusotsMessageProvider provider)
51+
private void GetAndReadTracks(IAusotsMessageProvider provider)
5952
{
60-
TryDownload(provider);
61-
ReadMessage();
53+
try
54+
{
55+
TryGetTracks(provider);
56+
ReadMessage();
57+
}
58+
catch { }
6259
}
6360

64-
/// <exception cref="TrackParseException"></exception>
61+
// Can throw exception.
6562
private void ReadMessage()
6663
{
6764
var trks = TryParse();
@@ -85,51 +82,48 @@ private void ReadMessage()
8582
}
8683
}
8784

88-
/// <exception cref="TrackParseException"></exception>
85+
// Can throw exception.
8986
private List<AusTrack> TryParse()
9087
{
9188
try
9289
{
9390
return new AusotsParser(RawData, recorder, airportList)
9491
.Parse();
9592
}
96-
catch (Exception ex)
93+
catch
9794
{
9895
recorder.AddEntry(
9996
StatusRecorder.Severity.Critical,
10097
"Failed to parse AUSOTs.",
10198
TrackType.Ausots);
10299

103-
throw new TrackParseException("Failed to parse Ausots.", ex);
100+
throw;
104101
}
105102
}
106103

107-
/// <exception cref="GetTrackException"></exception>
108-
private void TryDownload(IAusotsMessageProvider provider)
104+
// Can throw exception.
105+
private void TryGetTracks(IAusotsMessageProvider provider)
109106
{
110107
try
111108
{
112109
RawData = provider.GetMessage();
113110
}
114-
catch (Exception ex)
111+
catch
115112
{
116113
recorder.AddEntry(
117114
StatusRecorder.Severity.Critical,
118115
"Failed to download AUSOTs.",
119116
TrackType.Ausots);
120117

121-
throw new GetTrackException(
122-
"Failed to download Ausots.", ex);
118+
throw;
123119
}
124120
}
125121

126-
/// <exception cref="TrackParseException"></exception>
127-
/// <exception cref="GetTrackException"></exception>
128122
public override async Task GetAllTracksAsync()
129123
{
130124
await Task.Factory.StartNew(() =>
131-
DownloadAndReadTracks(new AusotsDownloader()));
132-
UndoEdit();
125+
GetAndReadTracks(new AusotsDownloader()));
126+
UndoEdit();
133127
}
134128

135129
public override void AddToWaypointList()

src/QSP/RouteFinding/Tracks/Nats/NatHandler.cs

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using QSP.RouteFinding.Routes.TrackInUse;
44
using QSP.RouteFinding.Tracks.Common;
55
using QSP.RouteFinding.Tracks.Interaction;
6-
using System;
76
using System.Collections.Generic;
87
using System.Threading.Tasks;
98

@@ -37,34 +36,32 @@ public NatsHandler(
3736
/// <summary>
3837
/// Download tracks and undo previous edit to wptList.
3938
/// </summary>
40-
/// <exception cref="GetTrackException"></exception>
41-
/// <exception cref="TrackParseException"></exception>
4239
public override void GetAllTracks()
4340
{
44-
DownloadAndReadTracks(new NatsDownloader());
41+
GetAndReadTracks(new NatsDownloader());
4542
UndoEdit();
4643
}
4744

4845
/// <summary>
4946
/// Load the tracks and undo previous edit to wptList.
5047
/// </summary>
51-
/// <exception cref="GetTrackException"></exception>
52-
/// <exception cref="TrackParseException"></exception>
5348
public void GetAllTracks(INatsMessageProvider provider)
5449
{
55-
DownloadAndReadTracks(provider);
50+
GetAndReadTracks(provider);
5651
UndoEdit();
5752
}
58-
59-
/// <exception cref="GetTrackException"></exception>
60-
/// <exception cref="TrackParseException"></exception>
61-
private void DownloadAndReadTracks(INatsMessageProvider provider)
53+
54+
private void GetAndReadTracks(INatsMessageProvider provider)
6255
{
63-
TryDownload(provider);
64-
ReadMessage();
56+
try
57+
{
58+
TryGetTracks(provider);
59+
ReadMessage();
60+
}
61+
catch { }
6562
}
6663

67-
/// <exception cref="TrackParseException"></exception>
64+
// Can throw exception.
6865
private void ReadMessage()
6966
{
7067
var trks = TryParse();
@@ -88,13 +85,11 @@ private void ReadMessage()
8885
}
8986
}
9087
}
91-
92-
/// <exception cref="GetTrackException"></exception>
93-
/// <exception cref="TrackParseException"></exception>
88+
9489
public override async Task GetAllTracksAsync()
9590
{
9691
await Task.Factory.StartNew(() =>
97-
DownloadAndReadTracks(new NatsDownloader()));
92+
GetAndReadTracks(new NatsDownloader()));
9893
UndoEdit();
9994
}
10095

@@ -110,9 +105,8 @@ public override void AddToWaypointList()
110105
}
111106
}
112107

113-
/// <exception cref="GetTrackException"></exception>
114-
/// <exception cref="TrackParseException"></exception>
115-
private void TryDownload(INatsMessageProvider provider)
108+
// Can throw exception.
109+
private void TryGetTracks(INatsMessageProvider provider)
116110
{
117111
try
118112
{
@@ -124,25 +118,26 @@ private void TryDownload(INatsMessageProvider provider)
124118
StatusRecorder.Severity.Critical,
125119
"Failed to download NATs.",
126120
TrackType.Nats);
121+
127122
throw;
128123
}
129124
}
130125

131-
/// <exception cref="TrackParseException"></exception>
126+
// Can throw exception.
132127
private List<NorthAtlanticTrack> TryParse()
133128
{
134129
try
135130
{
136131
return new NatsParser(RawData, recorder, airportList).Parse();
137132
}
138-
catch (Exception ex)
133+
catch
139134
{
140135
recorder.AddEntry(
141136
StatusRecorder.Severity.Critical,
142137
"Failed to parse NATs.",
143138
TrackType.Nats);
144139

145-
throw new TrackParseException("Failed to parse Nats.", ex);
140+
throw;
146141
}
147142
}
148143

0 commit comments

Comments
 (0)