Я хотел бы знать, нормально ли создавать исключение с несколькими параметрами в одном конструкторе (отличном от throwable, string) или это плохая практика?
Зачем мне нужно исключение с несколькимипараметры, ну, давайте предположим, что я анализирую матрицу, и когда возникает ошибка, я подниму исключение с позиции.Я хотел бы дать четкое сообщение об ошибке в исключении, а также я хотел бы использовать интернационализацию, то есть сообщения на разных языках.
Например, сообщения могут быть:
Есть ошибка в позиции 4, 5.
Hubo un problemma 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.
Я пытался найти информацию о том, какнаписать четко определенную иерархию исключений, но не так много документации и ничего о конструкторах.
Что вы думаете о моем подходе?