【问题标题】:Specific exception for wrong array length错误数组长度的特定异常
【发布时间】:2018-10-18 01:58:16
【问题描述】:

我写了一个方法,它以一个精确长度的数组作为参数。

当用户尝试将长度错误的数组传递给方法时,该方法会生成 ArgumentException

.NET 对于这种情况是否有更具体的异常类型?更好的做法是:在异常消息中说明异常的原因或纠正方法?

【问题讨论】:

  • 不,这是错误论点的正确例外。为什么你需要将长度传递给方法?也许您可以与我们分享方法。
  • 既然数组本身就带有长度属性,那么for的额外参数是什么?
  • @Damien_The_Unbeliever 用户可以传递任意长度的数组。但如果长度不完全匹配,异常会发出警告。
  • @JeroenMostert 好的,你是对的,对不起。已删除。

标签: .net arrays exception


【解决方案1】:

.NET 对于这种情况是否有更具体的异常类型?

不,.Net 框架没有针对您的特定情况内置更具体的异常。
虽然您总是可以创建自己的自定义异常类,但我认为在大多数情况下这是一种矫枉过正的做法。我想说ArgumentException 是在这种情况下抛出的正确异常。

还有什么更好的做法:在异常消息中说明异常的原因或纠正方法?

抛出异常时,您应在消息中包含导致异常的原因,而不是如何修复它。
在这种特殊情况下,我可能会在错误消息中写下这样的内容:

"<ArrayParameterName> have and invalid length. Acceptable length is <x>"

当然,将&lt;ArrayParameterName&gt; 更改为参数的名称,将&lt;x&gt; 更改为可接受的长度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2018-05-08
    • 2019-11-27
    • 2015-06-29
    • 2019-03-19
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多