c#如何在不符合条件时显示错误 - 对于每个语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何在不符合条件时显示错误 - 对于每个语句相关的知识,希望对你有一定的参考价值。
我有代码(有效),它将遍历一系列XML元素(Id),当它找到元素值和预定义变量(cpluuid)之间的匹配时,它将更新另一个子元素值( OriginalFileName),基于预定义的函数(SetNewValue)。
我无法弄清楚的是,只有当它已遍历所有元素并且未找到匹配时,如何抛出错误。理想情况下,它还将停止执行程序中的其余代码。
当它找到每个不匹配的元素时,我可以让它抛出错误,但这不是我想要的。
XML示例:
<PackingList xmlns="http://www.smpte-ra.org/schemas/2067-2/2016/PKL">
<Id>urn:uuid:296a656c-3610-4de1-9b08-2aa63245788d</Id>
<AnnotationText>IMF_JOT_Sample</AnnotationText>
<IssueDate>2018-02-16T20:59:42-00:00</IssueDate>
<Issuer>Generic</Issuer>
<Creator>Generic</Creator>
<AssetList>
<Asset>
<Id>urn:uuid:dd5a88d2-ccec-4b22-8584-fda51945c3ea</Id>
<AnnotationText>Audio_dd5a88d2-ccec-4b22-8584-fda51945c3ea.mxf</AnnotationText>
<Hash>OwjRFnWZCdKHSZ+3PBXroDhMMlY=</Hash>
<Size>1458414</Size>
<Type>application/mxf</Type>
<OriginalFileName>Audio_dd5a88d2-ccec-4b22-8584-fda51945c3ea.mxf</OriginalFileName>
<HashAlgorithm Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
</Asset>
<Asset>
<Id>urn:uuid:9e11458a-71fb-4702-8609-55d2308dcc64</Id>
<AnnotationText>Sub_9e11458a-71fb-4702-8609-55d2308dcc64.mxf</AnnotationText>
<Hash>48KyxgwCJVXIdgAGfaNApheQN5M=</Hash>
<Size>34509</Size>
<Type>application/mxf</Type>
<OriginalFileName>Sub_9e11458a-71fb-4702-8609-55d2308dcc64.mxf</OriginalFileName>
<HashAlgorithm Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
</Asset>
<Asset>
<Id>urn:uuid:d0686356-19c7-4bf4-b915-db778c308d1</Id>
<AnnotationText>CPL_IMF_JOT_Sample.xml</AnnotationText>
<Hash>5Yf4BV4GZ4qE9EjvtohZ8Rq8M2w=</Hash>
<Size>21881</Size>
<Type>text/xml</Type>
<OriginalFileName>CPL_IMF_JOT_Sample_272.xml</OriginalFileName>
<HashAlgorithm Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
</Asset>
<Asset>
<Id>urn:uuid:3f57f474-4c81-438e-a67d-1b08fa09a10d</Id>
<AnnotationText>IMF_JOT_Sample</AnnotationText>
<Hash>q8TiPkg/3devlN3LXnBhrgkZ968=</Hash>
<Size>713</Size>
<Type>text/xml</Type>
<OriginalFileName>OPL_3f57f474-4c81-438e-a67d-1b08fa09a10d.xml</OriginalFileName>
<HashAlgorithm Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
</Asset>
</AssetList>
</PackingList>
码:
foreach (var pklasset in pklassetElements)
var idElement = pklasset.Descendants(pklns + "Id").First();
if (!idElement.Value.Equals(cpluuid))
continue;
SetNewValue(pklasset, pklns + "OriginalFileName", outfile);//update cpl filename in pkl
答案
一种方法是设置一个bool
标志变量来跟踪你是否找到了一个匹配:
bool foundItem = false;
foreach (var pklasset in pklassetElements)
var idElement = pklasset.Descendants(pklns + "Id").First();
if (!idElement.Value.Equals(cpluuid)) continue;
//update cpl filename in pkl
SetNewValue(pklasset, pklns + "OriginalFileName", outfile);
foundItem = true;
break;
if (!foundItem) throw new Exception("Item not found");
以上是关于c#如何在不符合条件时显示错误 - 对于每个语句的主要内容,如果未能解决你的问题,请参考以下文章
如何加入 2 SELECT 语句,但仅在表 B 上满足表 A 的条件时显示输出
在每个页面加载时显示随机 DIV(对于fancybox modal)
验证 UITextField 并在错误时显示 UIAlertView