Я хотел бы знать, можно ли создать исключение с несколькими параметрами в одном конструкторе (отличном от 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.
Я попытался найти информацию о том, как написать четко определенную иерархию исключений, но там не так много документации и ничего о конструкторах.
Что вы думаете о моем подходе?