我写了一个方法,它采用一个精确长度的数组作为参数。
当用户尝试将长度错误的数组传递给方法时,该方法会生成 ArgumentException 。
对于这种情况,.NET是否有更具体的异常类型?什么是更好的做法:告诉异常消息异常的原因或纠正方法?
答案 0 :(得分:0)
对于这种情况,.NET是否有更具体的异常类型?
不,.Net框架没有为您的特定情况内置更具体的例外
虽然你总是可以创建自己的自定义异常类,但我认为在大多数情况下它都是一种过度杀伤力。我会说ArgumentException
是抛出这种情况的正确例外。
更好的做法是什么:告诉异常消息异常的原因或纠正方法?
在抛出异常时,您会在消息中包含导致异常的内容,而不是如何修复异常 在这种特殊情况下,我可能会在错误消息中写出类似的内容:
"<ArrayParameterName> have and invalid length. Acceptable length is <x>"
当然,将<ArrayParameterName>
更改为参数名称,将<x>
更改为可接受的长度。