public static void LogAndThrow <TEx>(this ILogger logger, LoggerSeverity sev, string message, object objectRef = null) where TEx : Exception { if (!sev.HasFlag(LoggerSeverity.Error)) { sev |= LoggerSeverity.Error; } logger?.Log(message, sev, objectRef); throw new HereticException(typeof(TEx).Initialize <TEx>(message), message, sev, objectRef); }
public HereticException(Exception inner, string message, LoggerSeverity severity = LoggerSeverity.Error, object cause = null) : base(message, inner) { if (!severity.HasFlag(LoggerSeverity.Error)) { severity |= LoggerSeverity.Error; } Cause = cause; Severity = severity; }