Исключение с несколькими параметрами в конструкторе

Я хотел бы знать, можно ли создать исключение с несколькими параметрами в одном конструкторе (отличном от throwable, string) или это плохо?

Почему нужно ли мне исключение с несколькими параметрами, ну, допустим, я анализирую матрицу, и при возникновении ошибки я вызову исключение с позицией. Я хотел бы дать четкое сообщение об ошибке в исключении, а также я хотел бы использовать интернационализацию, то есть сообщения на разных языках.

Например, сообщения могут быть такими:

Ошибка в позиции 4, 5.
Hubo un проблема 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");
 }
}

(Класс Messages реализует класс ResourceBundle )

С таким исключением я мог бы создать описательное сообщение в соответствующий язык, однако я никогда не видел исключений с параметрами, отличными от String и Throwable.

Я попытался найти информацию о том, как написать четко определенную иерархию исключений, но там не так много документации и ничего о конструкторах.

Что вы думаете о моем подходе?

5
задан Solomon Ucko 8 July 2016 в 12:58
поделиться