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