using System; namespace Sprache { /// /// Represents an error that occurs during parsing. /// public class ParseException : Exception { /// /// Initializes a new instance of the class. /// public ParseException() { } /// /// Initializes a new instance of the class with a specified error message. /// /// The message that describes the error. public ParseException(string message) : base(message) { } /// /// Initializes a new instance of the class with a specified error message /// and the position where the error occured. /// /// The message that describes the error. /// The position where the error occured. public ParseException(string message, Position position) : base(message) { if (position == null) throw new ArgumentNullException(nameof(position)); Position = position; } /// /// Initializes a new instance of the class with a specified error message /// and a reference to the inner exception that is the cause of this exception. /// /// The error message that explains the reason for the exception. /// The exception that is the cause of the current exception, /// or a null reference (Nothing in Visual Basic) if no inner exception is specified. public ParseException(string message, Exception innerException) : base(message, innerException) { } /// /// Gets the position of the parsing failure if one is available; otherwise, null. /// public Position Position { get; } } }