5

我正在编写一个执行矩阵运算的程序,并且试图弄清楚在无效维度的情况下应该使用哪种例外。是否有一些已经存在的异常类型可以让我的操作抛出;还是我应该实现自己的异常类型?我知道几乎任何异常类型都会做我想做的事,但问题是要确保异常确实描述了导致它的问题。

4

4 回答 4

7

最适合您正在寻找的是IndexOutOfBoundsException. 您可以按原样使用它,也可以从中派生出您自己的MatrixIndexOutOfBoundsException异常。

于 2012-09-24T18:00:57.117 回答
2

就像其他人说的那样,您可能不需要。但是由于客户永远是对的 -您应该创建自己的异常类型。

不过,这是一个相关的 SO 问题:线程“main”中的异常 java.lang.RuntimeException: Matrix is single

于 2012-09-24T18:00:12.313 回答
2

您可以抛出一个IllegalArgumentException(String message),其中包含描述矩阵维度不适合您要执行的操作的消息。

例如,如果您的库用户尝试调用仅适用于nXn带有nXm矩阵参数的矩阵的方法,您应该抛出这样的异常。

于 2012-09-24T18:01:00.293 回答
0

如果您可以使用自己的例外。那么您自己的异常应该扩展 java.lang.RuntimeException 或 RuntimeException 的子类。RuntimeException 是未经检查的异常。在这种情况下,您应该使用未经检查的异常。

于 2012-09-24T18:07:50.250 回答