/// <summary>Writes the exception message.</summary> private static string WriteMessage(ExtractHg3Result result, string file, Exception innerException = null, int memoryLeak = 0) { string name = Path.GetFileName(file); string error = innerException?.GetType().Name ?? "Unknown Error"; switch (result) { case ExtractHg3Result.Hg3ConvertFailed: return($"{error} occurred while trying to convert '{name}' to a bmp!"); case ExtractHg3Result.BmpConvertFailed: return($"{error} occurred while trying to convert '{name}' to a png!"); case ExtractHg3Result.PngSaveFailed: return($"{error} occurred while trying to save '{name}'!"); case ExtractHg3Result.BmpDeleteFailed: return($"{error} occurred while trying to delete leftover `{name}`!"); case ExtractHg3Result.Unknown: return($"{error} occurred during an unknown point in the operation with '{name}'!"); default: return("No error occurred."); } }
/// <summary>Constructs the exception with a result, associated file, and inner /// exception.</summary> public ExtractHg3Exception(ExtractHg3Result result, string file, Exception innerException) : base(WriteMessage(result, file, innerException), innerException) { State = result; File = file; }