Вы имеете в виду что-то вроде
else {
throw new XException(...);
throw new YException(...);
throw new ZException(...);
}
... и все они брошены "на один раз"?
Нет, это невозможно и не будет слишком много смысла imho. Как должен выглядеть код клиента, который ловит эти исключения?
Кроме того, вы shouldn't использовать исключение в качестве замены для обычных структур управления потоком, исключения должны обрабатывать только, ну, исключительные ошибки, как не в состоянии подключиться к базе данных и т.д.
Вы могли бы реализовать другой обычай класс исключения, который принимает массив ошибок в качестве аргумента, и код клиента может делать такие вещи, как:
catch(SomeException $e) {
$messages = $e->getErrorMessages();
}
Как Я не говорю на языке языке, я не могу точно сказать, что вы пытаетесь сделать в этот бит кода вы отправили, иначе я мог бы предложить что-то более конкретное.
EDIT/UPDATE:
@MEM спасибо за обновление кода с английскими сообщениями об ошибках. Вы внедряете что-то вроде службы регистрации доменов?
Конечно, это немного сложная тема, поскольку у каждого есть свои предпочтения, но я бы не стал исключать, если e. г. пользователь попытался зарегистрировать домен, который уже был использован кем-то другим. Это не исключительное состояние, это должно быть исключено. Я бы сделал класс/метод проверки, который собирает эти сообщения об ошибках, которые, в свою очередь, отображаются пользователю.
Когда бы я выбрал исключение в приложении вроде твоего? Я не очень разбираюсь в регистрации домена, но если вы получаете информацию о том, является ли домен бесплатным или нет с удаленного сервера/веб-службы, и этот веб-сервис не работает, я бы выбрал исключение. Он попадает в Контроллер (я изображаю веб-приложение MVC), которое, в свою очередь, отвечает клиенту сообщением «Сервер вниз, пожалуйста, попробуйте еще раз позже».
У меня обновить свой вопрос, а также перевод сообщений об ошибках. – MEM