当我期望相等的两个值不相等时抛出什么异常?(C#)

Dre*_*rew 4 c# error-handling exception

我觉得这必须是重复的,但我试过环顾四周,找不到我想要的东西.

我正在使用的示例从解析XML文档开始.在此XML文档中,人员的姓名在两个不同的位置陈述.后来用另一种方法,我需要使用这个人的名字.我可以在XML文档中使用这两个引用人名的任何一个,因为它们是相同的,或者我希望如此.我首先要检查它们是否确实相同.如果由于某种原因它们不相等,我觉得最好抛出异常.当一个人期望的两个值相等时实际上是不相等的,是否存在例外情况?

我考虑过ArgumentException,但我不确定这是否最好,因为它指定:

调用方法并且至少有一个传递的参数不符合被调用方法的参数规范时,抛出ArgumentException.

这不是这里的情况,因为参数很好,只是其中一个属性(即人名)的值不是我所期望的.

我想你可能遇到的第一个问题是我为什么要抛出异常.也许这不是最好的选择,但我认为应该考虑到两个名称不匹配的原因是因为当创建XML文档时,其中一个名称写入没有正确完成其工作,我可能想知道.我没有错误处理的经验,所以这可能并不意味着应该抛出异常.任何意见,将不胜感激.

Eti*_*her 5

我首先要检查它们是否确实相同.如果由于某种原因它们不相等,我觉得最好抛出异常.

您可以使用InvalidOperationException,因为您的操作期望值相等.如果值不相等,则操作无效.

您还可以定义自己的例外.您可以随后根据您的情况/对象自定义您的例外以进行比较.