Я попытаюсь привести несколько примеров в Java, поскольку я не уверен в этом на рисунке и в вашем утверждении:
, где вы бы объявили несколько пользовательских исключений, например, в одном классе:
Что именно вы подразумеваете под объявлением нескольких пользовательских исключений в одном классе.
Интерфейс
В Java вы можете либо определить Interface
и реализовать его, и использовать его при наборе текста следующим образом:
interface CustomException {
String getMessage();
}
Затем создайте класс, который реализует это.
class ApplicationException implements CustomException {
public String getMessage() {
return "Uh oh..";
}
}
А когда вы бросаете что-либо, вы можете получить только ловлю CustomException
.
try {
// do something
}
catch( CustomException ce) {
// do something with the CustomException
}
Базовый класс
Другим способом вы можете go это расширение одного из встроенных классов Exception, таких как RuntimeException
или просто Exception
.
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
Затем вы можете расширять этот пользовательский класс и использовать его при обычном наборе текста.
class ApplicationException extends CustomException {
public ApplicationException(String message) {
super(message);
}
}
Тогда это снова работает, как раньше:
try {
// do something
}
catch( CustomException ce) {
// do something with the CustomException
}
Внутри улова вы ловите их всех в одном go. Если вам нужно сделать разные логи c на разных уловах, вы можете сделать отдельные блоки catch
, в противном случае вы можете сделать следующее:
try {
// do something
}
catch ( ApplicationException | IllegalArgumentException e) {
// do something with an error that is either a ApplicationException or a IllegalArgumentException
}
Не традиционный
Это я выкладываю сюда ради полноты но это не принято. Вы можете создать один файл в вашем проекте с именем Exception.java
. Внутри вы можете определить столько классов, сколько захотите, и можете ссылаться на них, импортируя их, но это не идиоматический c способ написания Java.
Так внутри Exception.java
:
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
class ApplicationException extends Exception {
public ApplicationException(String message) {
super(message);
}
}
Надеюсь, это поможет вам и продолжит ваше путешествие.