J'ai une classe qui consiste principalement à rassembler les entrées de chaîne, puis à sortir les données dans un certain format. Le résultat de la classe est fondamentalement un remplacement ToString().C# Gestion des exceptions
Avec ma classe, j'ai une méthode statique string Print(string path)
qui lit les entrées d'un fichier plat. Il analyse ensuite ces entrées et génère une instance d'une classe pour chaque enregistrement du fichier plat. Ensuite, pour chaque instance de la classe, j'appelle la classe. ToString() et l'ajoute au stringbuilder qui sera finalement retourné dans Print()
.
Je m'assure que chaque enregistrement a les valeurs nécessaires et a une portée appropriée, si ce n'est pas le cas, j'ai besoin de lancer une exception. Je n'ai jamais fait de gestion des exceptions auparavant, donc je veux savoir si ce que je veux faire est encore possible. Quand un cas d'exception est levé, je veux prendre ce qui est dans le stringbuilder ajouter le nettoyage de balise de fermeture, puis ajouter le texte de l'exception au stringbuilder, puis retourner (Exception Error Text + stringbuilder.ToString() + FooterStuff).
Modifier le code:
Il ne pourrait pas vraiment être une bonne idée de lancer une exception, je pourrais juste besoin d'utiliser un try {} catch {} pour attraper une exception, puis ajoutez la Exception.Message à la début du stringbuilder. Je ne sais pas vraiment cependant, les exceptions sont assez nouvelles pour moi.
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;
}
}
envoyer votre code ... –
OK. Donne moi une minute. – Shawn