我有一个解析 XML 文件的进程。
这发生在 PAckage 类中。
Package 类有一个 Delegate,它将对象设置为无效状态并捕获有关 Package Class 发生的错误的详细信息
为简单起见,我展示了传递给包的文件。
即`
foreach( var package in Packages)
{
try
{
package.ProcessXml(fileitem.nextfile);
}
catch (CustomeErrorException ex)
{
Logger.LogError(ex)
}
}
在包裹里面我的验证看起来像这样
var Album = xml.Descendants()
.Select(albumShards => new Album {
Label = (string)albumShards.Descendants(TempAlbum.LabelLoc).FirstOrDefault() == "" ?
FailPackage("Error on label Load",Componets.Package,SubComp.BuildAlbum ) : (string)albumShards.Descendants(TempAlbum.LabelLoc).FirstOrDefault()
在此验证中,我检查是否为标签返回“”...如果是,则使用错误信息调用 Failpackage 并创建异常
protected override void FailPackage(string msg, LogItem logItem)
{
Valid = ProcessState.Bad;
Logger.LogError(msg,logItem);
throw CustomErrorException(msg, Logitem);
}
通过包含的 try catch 块捕获
我担心的是我正在为程序流使用异常......我应该如何看待这个问题或者这是一个有效的模式。