Skip to content

Commit

Permalink
Handle more exceptions as failed external operation
Browse files Browse the repository at this point in the history
  • Loading branch information
mstv committed Apr 15, 2021
1 parent 606769b commit 9a9c8ae
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions GitUI/NBugReports/BugReporter.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using System;
using System.ComponentModel;
using System.IO;
using System.Security;
using System.Text;
using System.Windows.Forms;
using GitExtUtils;
Expand Down Expand Up @@ -65,7 +68,13 @@ void AppendIfNotEmpty(string? value, string designation)
public static void Report(Exception exception, bool isTerminating)
{
bool isUserExternalOperation = exception is UserExternalOperationException;
bool isExternalOperation = exception is ExternalOperationException;
bool isExternalOperation = exception is ExternalOperationException
or IOException
or SecurityException
or FileNotFoundException
or DirectoryNotFoundException
or PathTooLongException
or Win32Exception;

StringBuilder text = new();
string rootError = Append(text, exception);
Expand Down Expand Up @@ -97,7 +106,7 @@ public static void Report(Exception exception, bool isTerminating)
taskDialogCommandLink.Click += (s, e) =>
{
taskDialog.Close();
ShowNBug(OwnerForm, exception, isTerminating);
ShowNBug(OwnerForm, exception, isExternalOperation, isTerminating);
};
taskDialog.Controls.Add(taskDialogCommandLink);

Expand All @@ -120,14 +129,14 @@ void AddIgnoreOrCloseButton()
}
}

private static void ShowNBug(IWin32Window? owner, Exception exception, bool isTerminating)
private static void ShowNBug(IWin32Window? owner, Exception exception, bool isExternalOperation, bool isTerminating)
{
var envInfo = UserEnvironmentInformation.GetInformation();

using BugReportForm form = new();
DialogResult result = form.ShowDialog(owner, exception, envInfo,
canIgnore: !isTerminating,
showIgnore: exception is ExternalOperationException,
showIgnore: isExternalOperation,
focusDetails: exception is UserExternalOperationException);
if (isTerminating || result == DialogResult.Abort)
{
Expand Down

0 comments on commit 9a9c8ae

Please sign in to comment.