我觉得这一定是重复的,但我试着环顾四周,但找不到我要找的东西。
我正在使用的示例从解析 XML 文档开始。在此 XML 文档中,人名在两个不同的位置声明。稍后在不同的方法中,我需要使用这个人的名字。我可以在 XML 文档中使用这两个对人名的引用中的任何一个,因为它们是相同的,或者我希望如此。我首先要检查它们是否确实相同。如果出于某种原因它们不相等,我觉得最好抛出异常。当一个人期望相等的两个值实际上不相等时是否有异常(exception)?
我考虑过 ArgumentException
,但我不确定这是否最好,因为它指定:
ArgumentException is thrown when a method is invoked and at least one of the passed arguments does not meet the parameter specification of the called method.
这里不是这种情况,因为参数很好,只是其中一个属性(即人名)的值不是我期望的值。
我想您的第一个问题可能是我为什么要抛出异常。也许这不是最好的选择,但考虑到这两个名称不匹配的原因,我觉得应该这样做,因为当创建 XML 文档时,其中一个名称写入没有正确完成它的工作,我可能会这样做想知道。我没有处理错误的经验,所以这可能并不意味着应该抛出异常。任何建议将不胜感激。
最佳答案
I first want to check that they are indeed the same. If they are not equal for whatever reason, I feel like it would be best to throw an exception.
你可以使用 InvalidOperationException ,因为您的操作期望值相等。如果值不相等,则您的操作无效。
您还可以定义自己的异常。之后您可以根据要比较的情况/对象自定义异常。
关于c# - 当我期望相等的两个值不相等时抛出什么异常? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879989/