private TException CreateDefault <TException>(DefaultMessage defaultMessage) where TException : Exception, new() { var exception = new TException(); if (defaultMessage is null) { return(exception); } var exceptionMessageField = typeof(TException).GetField("_message", BindingFlags.Instance | BindingFlags.NonPublic); exceptionMessageField?.SetValue(exception, defaultMessage.ToString()); throw exception; }