Перехват других типов исключений
Вы можете catch
нескольких типов исключений одним catch
, если поймаете их общего предка class
.Например,
try {
//some code
} catch (Exception ex) {
//handling the catch
}
будет перехватывать все исключения, поэтому, пожалуйста, будьте как можно более общими, но все равно обрабатывайте ошибки правильно, поэтому перехват Exception
может быть или не быть вариантом для вас, в зависимости от вашегоситуация.
Способы обработки исключения
Вы перехватываете несколько типов исключений и вместо того, чтобы обрабатывать их или выбрасывать, вы throw
исключение того же типа.Например, нет причин делать это:
try {
//some code
} catch (InvalidRequestException ex) {
throw new InvalidRequestException(ex);
}
вместо этого:
try {
//some code
} catch (InvalidRequestException ex) {
throw ex;
}
Но если ваш catch
равен * , выдает то же исключениетогда нет смысла иметь catch
вообще.Вам нужно сделать ошибки понятными для пользователя, то есть отправить пользователю ответ с объяснением проблем, а затем throw
исключение.Или вы можете вообще не генерировать исключение внутри catch
и регистрировать какое-либо сообщение вместо этого.
Реализация собственного исключения
Это, конечно, вариант, который может быть выполним, если у вас естьнекоторые пользовательские типы ошибок.