构造函数中有多个参数的异常

Ang*_*ocA 5 java parameters constructor overriding exception

我想知道是否可以在一个构造函数中创建一个具有多个参数的异常(与throwable,string不同)或者这种做法是否错误?

为什么我需要一个带有多个参数的异常,好吧,假设我正在分析一个矩阵,当出现错误时,我会用该位置引发异常.我想在异常中给出一个明确的错误消息,我也想使用国际化,即不同语言的消息.

例如,消息可以是:

位置4,5出现错误
.Hubo un problema en la fila 4 con columna 5.

如您所见,两个消息的文本都不同,并且值对于消息很重要,以便具有描述性.

我的方法是这样的:

public class MatrixException extends Exception {
  int x;
  int y;
  public MatrixException (int x, int y){
    this.x = x;
    this.y = y;
 }
 public String getMessage(){
   return Messages.getString("MatrixException.Message1") + this.x
       Messages.getString("MatrixException.Message2") + this.y
       Messages.getString("MatrixException.Message3");
 }
}
Run Code Online (Sandbox Code Playgroud)

(Messages该类实现了ResourceBundle该类)

有了这种异常,我可以用相应的语言创建描述性消息,但是我从未见过参数与String和Throwable不同的异常.

我试图找到有关如何编写明确定义的异常层次结构的信息,但是没有很多文档,也没有关于构造函数的信息.

您如何看待我的方法?

NPE*_*NPE 5

这种方法没有错.

实际上,标准库中有一些异常类,其构造函数的参数与String和不同Throwable.

想到的第一个例子是SQLException(String, String, int).然后是URISyntaxException(String, String, int)甚至是EnumConstantNotPresentException(Class<? extends Enum>, String).