У меня есть класс, который преимущественно состоит из сбора ввода строки и последующего вывода данных в определенном формате. Результатом класса является переопределение ToString().C# Обработка исключений
С моим классом у меня есть статический метод string Print(string path)
, который считывает входы из плоского файла. Затем он анализирует эти входы и генерирует экземпляр класса для каждой записи в плоском файле. Затем для каждого экземпляра класса я вызываю class.ToString() и добавляю его в строковый конструктор, который в конечном итоге возвращается в пределах Print()
.
Я гарантирую, что каждая запись имеет необходимые значения и имеет соответствующий диапазон, если мне не нужно выставлять исключение. Я никогда не занимался обработкой исключений, поэтому я хочу знать, возможно ли то, что я хочу сделать.
Когда возникает случай исключения, я хочу, чтобы все, что находится в строковой добавке, добавляло материал для очистки закрывающего тега, а затем добавляло текст исключения в строковый конструктор, а затем возвращал (Exception Error Text + stringbuilder.ToString() + FooterStuff).
Редактировать код:
Это не могло бы быть на самом деле хорошая идея бросить исключение, я мог бы просто нужно использовать попробовать {} поймать {}, чтобы поймать исключение, а затем добавить к exception.message начало stringbuilder. Я не знаю, хотя, исключения для меня довольно новы.
public class Record
{
public string Name;
public string Value;
...
private Dictionary<string, LogFormat> = new LogFormat.Table();
public static string Print()
{
Stringbuilder sb = new StringBuilder();
var k = ReadLog();
foreach (var x in k)
{
sb.Append(x.ToString());
}
return sb.ToString();
}
public override string ToString()
{
if (Table[Name].NeedsValue && (Value == String.Empty || Value == null))
{
throw new Exception();
}
return String.Format(Table[Name].Format, Attribute, Value);
}
}
public class LogFormat
{
public string Format;
public bool NeedsValue = false;
public Dictionary<string,LogFormat> Table()
{
Dictionary<string,LogFormat> dct = new Dictionary<string,LogFormat>();
dct.Add("Address", new LogFormat(){Format = "Street:{0}\nCity:{1}"});
...
return dct;
}
}
разместить свой код ... –
Okay. Дай мне минуту. – Shawn