Если вы хотите сохранить несколько ошибок / предупреждений из-за анализа HTML, используйте коллекцию сообщений.
Вы можете определить такую коллекцию сообщений следующим образом:
public class MessageCollection : Collection<Message>
{
}
public class Message
{
public Message(Severity severity, string message)
{
Severity = severity;
Message = message;
}
public Severity Severity { get; private set; }
public string Message { get; private set; }
}
public enum Severity
{
Error,
Warning,
Info
}
Вы можете использовать эти классы так:
var messages = new MessageCollection();
messages.Add(new Message(Severity.Warning, "This is a warning"));
messages.Add(new Message(Severity.Error, "This is an error"));
Таким образом, вы можете собирать несколько сообщений при разборе HTML. Если хотите, вы все равно можете выбросить исключение, но затем с этими сообщениями:
public class MessageException : Exception
{
public MessageException(MessageCollection messages)
: base("One or more messages were collected")
{
Messages = messages;
}
public MessageCollection Messages { get; private set; }
}
А затем выбросить это исключение так:
var messages = new MessageCollection();
messages.Add(new Message(Severity.Warning, "This is a warning"));
messages.Add(new Message(Severity.Error, "This is an error"));
if (messages.Count > 0)
throw new MessageException(messages);