2013-02-12 42 views
7

如果您在代码中投入System.IndexOutOfRangeExceptionsee reference),FxCop会违反规则CA2201。理由是根据文档,System.IndexOutOfRangeException是“保留的,应该仅由公共语言运行时引发”。在C#中抛出保留的异常时会出现什么问题?

但是如果你抛出System.IndexOutOfRangeException会发生什么问题?

+7

为什么你需要自己扔它? – Oded 2013-02-12 13:50:15

+0

@Oded当你正在实现低层次的数据结构。 – Romoku 2013-02-12 13:50:47

+4

@Romoku - 即使那样。对于大多数类型,您将在现有类型中具有基础存储,这已经会引发这种情况。 – Oded 2013-02-12 13:51:52

回答

4

没有。

从技术角度来看,抛出这个异常是非常好的。如果你这样做,什么都不会破坏

但请记住,只有在遇到System.IndexOutOfRangeException第一位时才应该抛出System.IndexOutOfRangeException,因为否则此异常将不合适,因为它非常清楚地定义了此异常类型的用途。 MSDN states for theSystem.IndexOutOfRangeException

当试图与作为数组的范围外的索引来访问的阵列的元素时引发的异常。这个类不能被继承。

相关问题