diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 1c20289e..779c867d 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -2283,9 +2283,6 @@ namespace SabreTools.Library.DatFiles catch (IOException ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return; } } diff --git a/SabreTools.Library/DatItems/DatItem.cs b/SabreTools.Library/DatItems/DatItem.cs index ebc4239e..a6d89e97 100644 --- a/SabreTools.Library/DatItems/DatItem.cs +++ b/SabreTools.Library/DatItems/DatItem.cs @@ -1116,9 +1116,6 @@ namespace SabreTools.Library.DatItems } catch (Exception ex) { - if (Globals.ThrowOnError) - throw ex; - // Absorb the error return 0; } diff --git a/SabreTools.Library/FileTypes/Folder.cs b/SabreTools.Library/FileTypes/Folder.cs index 7755ba73..52cef6d5 100644 --- a/SabreTools.Library/FileTypes/Folder.cs +++ b/SabreTools.Library/FileTypes/Folder.cs @@ -127,9 +127,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return false; } @@ -208,9 +205,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return realentry; } @@ -250,9 +244,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return (ms, realentry); } @@ -390,9 +381,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } finally diff --git a/SabreTools.Library/FileTypes/GZipArchive.cs b/SabreTools.Library/FileTypes/GZipArchive.cs index 156dd5ff..edc298c3 100644 --- a/SabreTools.Library/FileTypes/GZipArchive.cs +++ b/SabreTools.Library/FileTypes/GZipArchive.cs @@ -78,22 +78,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -181,9 +175,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -253,9 +244,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } } diff --git a/SabreTools.Library/FileTypes/RarArchive.cs b/SabreTools.Library/FileTypes/RarArchive.cs index 219fa31d..e6b625c3 100644 --- a/SabreTools.Library/FileTypes/RarArchive.cs +++ b/SabreTools.Library/FileTypes/RarArchive.cs @@ -71,22 +71,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -167,9 +161,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -230,9 +221,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } @@ -274,8 +262,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; } return empties; diff --git a/SabreTools.Library/FileTypes/SevenZipArchive.cs b/SabreTools.Library/FileTypes/SevenZipArchive.cs index 9537f604..cdd72d13 100644 --- a/SabreTools.Library/FileTypes/SevenZipArchive.cs +++ b/SabreTools.Library/FileTypes/SevenZipArchive.cs @@ -120,22 +120,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -251,9 +245,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -341,9 +332,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } @@ -397,8 +385,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; } return empties; @@ -616,9 +602,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } finally @@ -848,9 +831,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } diff --git a/SabreTools.Library/FileTypes/TapeArchive.cs b/SabreTools.Library/FileTypes/TapeArchive.cs index f6990909..2a5f3a87 100644 --- a/SabreTools.Library/FileTypes/TapeArchive.cs +++ b/SabreTools.Library/FileTypes/TapeArchive.cs @@ -76,23 +76,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -173,9 +166,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -236,9 +226,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } @@ -280,8 +267,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; } return empties; @@ -436,9 +421,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } finally @@ -619,9 +601,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } finally diff --git a/SabreTools.Library/FileTypes/XZArchive.cs b/SabreTools.Library/FileTypes/XZArchive.cs index 2886b501..c9ba5b6c 100644 --- a/SabreTools.Library/FileTypes/XZArchive.cs +++ b/SabreTools.Library/FileTypes/XZArchive.cs @@ -72,22 +72,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -173,9 +167,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -242,9 +233,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } } diff --git a/SabreTools.Library/FileTypes/ZipArchive.cs b/SabreTools.Library/FileTypes/ZipArchive.cs index 3805965c..c51e83dc 100644 --- a/SabreTools.Library/FileTypes/ZipArchive.cs +++ b/SabreTools.Library/FileTypes/ZipArchive.cs @@ -121,22 +121,16 @@ namespace SabreTools.Library.FileTypes catch (EndOfStreamException ex) { // Catch this but don't count it as an error because SharpCompress is unsafe - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex); } catch (InvalidOperationException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex); encounteredErrors = true; } catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - encounteredErrors = true; } @@ -252,9 +246,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - ms = null; realEntry = null; } @@ -346,9 +337,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return null; } @@ -402,8 +390,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; } return empties; @@ -620,9 +606,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } finally @@ -853,9 +836,6 @@ namespace SabreTools.Library.FileTypes catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - success = false; } diff --git a/SabreTools.Library/Filtering/ExtraIniItem.cs b/SabreTools.Library/Filtering/ExtraIniItem.cs index fc69fb74..57a852b2 100644 --- a/SabreTools.Library/Filtering/ExtraIniItem.cs +++ b/SabreTools.Library/Filtering/ExtraIniItem.cs @@ -99,10 +99,7 @@ namespace SabreTools.Library.Filtering } catch (Exception ex) { - Globals.Logger.Warning($"Exception found while parsing '{ini}': {ex}"); - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex, $"Exception found while parsing '{ini}'"); return false; } diff --git a/SabreTools.Library/IO/DirectoryExtensions.cs b/SabreTools.Library/IO/DirectoryExtensions.cs index e102d2ce..81ccb765 100644 --- a/SabreTools.Library/IO/DirectoryExtensions.cs +++ b/SabreTools.Library/IO/DirectoryExtensions.cs @@ -92,9 +92,6 @@ namespace SabreTools.Library.IO catch (Exception ex) { Globals.Logger.Error(ex, $"An exception occurred getting the full path for '{input}'"); - if (Globals.ThrowOnError) - throw ex; - continue; } @@ -109,15 +106,11 @@ namespace SabreTools.Library.IO } catch (PathTooLongException ex) { - Globals.Logger.Warning($"The path for '{dir}' was too long"); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Warning(ex, $"The path for '{dir}' was too long"); } catch (Exception ex) { Globals.Logger.Error(ex, $"An exception occurred processing '{dir}'"); - if (Globals.ThrowOnError) - throw ex; } } } @@ -195,9 +188,6 @@ namespace SabreTools.Library.IO catch (Exception ex) { Globals.Logger.Error(ex, $"An exception occurred getting the full path for '{input}'"); - if (Globals.ThrowOnError) - throw ex; - continue; } @@ -212,15 +202,11 @@ namespace SabreTools.Library.IO } catch (PathTooLongException ex) { - Globals.Logger.Warning($"The path for '{file}' was too long"); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Warning(ex, $"The path for '{file}' was too long"); } catch (Exception ex) { Globals.Logger.Error(ex, $"An exception occurred processing '{file}'"); - if (Globals.ThrowOnError) - throw ex; } } } @@ -232,15 +218,11 @@ namespace SabreTools.Library.IO } catch (PathTooLongException ex) { - Globals.Logger.Warning($"The path for '{input}' was too long"); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Warning(ex, $"The path for '{input}' was too long"); } catch (Exception ex) { Globals.Logger.Error(ex, $"An exception occurred processing '{input}'"); - if (Globals.ThrowOnError) - throw ex; } } } diff --git a/SabreTools.Library/IO/FileExtensions.cs b/SabreTools.Library/IO/FileExtensions.cs index 844f4ce7..a57ab421 100644 --- a/SabreTools.Library/IO/FileExtensions.cs +++ b/SabreTools.Library/IO/FileExtensions.cs @@ -189,9 +189,7 @@ namespace SabreTools.Library.IO } catch (Exception ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex, $"An exception occurred trying to figure out the format of '{filename}'"); return 0; } } @@ -303,9 +301,7 @@ namespace SabreTools.Library.IO } catch (Exception ex) { - // Don't log file open errors - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Warning(ex, $"An exception occurred determining file type of '{input}'"); } return outFileType; diff --git a/SabreTools.Library/IO/StreamExtensions.cs b/SabreTools.Library/IO/StreamExtensions.cs index c35a8857..28dbb12e 100644 --- a/SabreTools.Library/IO/StreamExtensions.cs +++ b/SabreTools.Library/IO/StreamExtensions.cs @@ -194,9 +194,7 @@ namespace SabreTools.Library.IO } catch (IOException ex) { - if (Globals.ThrowOnError) - throw ex; - + Globals.Logger.Warning(ex, "An exception occurred during hashing."); return new BaseFile(); } finally @@ -231,15 +229,11 @@ namespace SabreTools.Library.IO } catch (NotSupportedException ex) { - Globals.Logger.Verbose("Stream does not support seeking to starting offset. Stream position not changed"); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Verbose(ex, "Stream does not support seeking to starting offset. Stream position not changed"); } catch (NotImplementedException ex) { - Globals.Logger.Warning("Stream does not support seeking to starting offset. Stream position not changed"); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Warning(ex, "Stream does not support seeking to starting offset. Stream position not changed"); } return -1; diff --git a/SabreTools.Library/Logging/Logger.cs b/SabreTools.Library/Logging/Logger.cs index 54bbccd7..ff258b87 100644 --- a/SabreTools.Library/Logging/Logger.cs +++ b/SabreTools.Library/Logging/Logger.cs @@ -225,6 +225,21 @@ namespace SabreTools.Library.Logging return true; } + /// + /// Write the given exception as a verbose message to the log output + /// + /// Exception to be written log + /// String to be written log + /// True if the level and datetime should be prepended to each statement (default), false otherwise + /// True if the output could be written, false otherwise + public bool Verbose(Exception ex, string output = null, bool appendPrefix = true) + { + if (Globals.ThrowOnError) + throw ex; + + return Verbose($"{(output != null ? output + ": " : string.Empty)}{ex}", appendPrefix); + } + /// /// Write the given string as a verbose message to the log output /// @@ -236,6 +251,21 @@ namespace SabreTools.Library.Logging return Log(output, LogLevel.VERBOSE, appendPrefix); } + /// + /// Write the given exception as a user message to the log output + /// + /// Exception to be written log + /// String to be written log + /// True if the level and datetime should be prepended to each statement (default), false otherwise + /// True if the output could be written, false otherwise + public bool User(Exception ex, string output = null, bool appendPrefix = true) + { + if (Globals.ThrowOnError) + throw ex; + + return User($"{(output != null ? output + ": " : string.Empty)}{ex}", appendPrefix); + } + /// /// Write the given string as a user message to the log output /// @@ -256,6 +286,9 @@ namespace SabreTools.Library.Logging /// True if the output could be written, false otherwise public bool Warning(Exception ex, string output = null, bool appendPrefix = true) { + if (Globals.ThrowOnError) + throw ex; + return Warning($"{(output != null ? output + ": " : string.Empty)}{ex}", appendPrefix); } @@ -280,6 +313,9 @@ namespace SabreTools.Library.Logging /// True if the output could be written, false otherwise public bool Error(Exception ex, string output = null, bool appendPrefix = true) { + if (Globals.ThrowOnError) + throw ex; + return Error($"{(output != null ? output + ": " : string.Empty)}{ex}", appendPrefix); } diff --git a/SabreTools.Library/Skippers/SkipperRule.cs b/SabreTools.Library/Skippers/SkipperRule.cs index 9717a810..13bb166e 100644 --- a/SabreTools.Library/Skippers/SkipperRule.cs +++ b/SabreTools.Library/Skippers/SkipperRule.cs @@ -202,9 +202,6 @@ namespace SabreTools.Library.Skippers catch (Exception ex) { Globals.Logger.Error(ex); - if (Globals.ThrowOnError) - throw ex; - return false; } finally diff --git a/SabreTools.Library/Tools/DatabaseTools.cs b/SabreTools.Library/Tools/DatabaseTools.cs index 49538d21..2a46f757 100644 --- a/SabreTools.Library/Tools/DatabaseTools.cs +++ b/SabreTools.Library/Tools/DatabaseTools.cs @@ -137,9 +137,7 @@ CREATE TABLE IF NOT EXISTS data ( } catch (Exception ex) { - Console.WriteLine(ex); - if (Globals.ThrowOnError) - throw ex; + Globals.Logger.Error(ex); } finally {