我有一个解析XML文件的进程。通过自定义异常执行程序流程
这是发生在包类中。
打包类有一个代表该将对象设置为无效状态,并且捕获于错误的详细信息所发生的软件包类
为了简单起见,我表示被传递到包filitem ..
即`
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块捕获
我的问题是我正在使用例外程序流...我应该怎么看待解决这个问题或者这是一个有效的模式。
如何往往是标签是空的? – Amy 2011-12-19 01:08:44
它不应该......只有在错误 – HoopSnake 2011-12-19 01:11:29