Во-первых, C # имеет свойства, поэтому вы должны их использовать, а не создавать GetXXX
методы.В вашем случае общедоступные автоматические свойства с частными установщиками должны выполнять эту работу:
public string FileName { get; private set; }
public long LineNumber { get; private set; }
Вы можете установить их в конструкторе исключения:
public FileParseException(string fileName, long lineNumber)
{
FileName = fileName;
LineNumber = lineNumber;
}
Чтобы вызвать такое исключение, используйтеконструктор выше:
throw new FileParseException(fileName, lineNumber);
И когда вы поймаете его, вы можете получить доступ к свойствам:
catch (FileParseException fpe)
{
Console.WriteLine(
"Error in file {0} on line {1}.", fpe.FileName, fpe.LineNumber);
}
Кроме того, вы, вероятно, должны установить Message
исключения, передавсообщение для базового конструктора:
public FileParseException(string fileName, long lineNumber)
: base(
string.Format(
"Error while parsing file {0} on line {1}.", fileName, lineNumber))
{
FileName = fileName;
LineNumber = lineNumber;
}