serialize(array($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, "-f ".$this->clean_email($this->_headers['From']))
или воспользоваться вот такой функцией:Как программист узнает, что внутри кода клиента что-то там собирается бросить исключение? Какого класса будет это исключение — где об этом написано? Зачем ему держать это в голове?Я полагаю, у программиста есть очевидные причины ожидать исключения от библиотеки, с которой он работает. Ровно как и ошибки в любом другом виде. Речь только о том, удобнее ли исключения для обработки или нет.
if (in_array($result->getError()->getCode(), [ApiClient::ERROR_NOT_ENOUGHT_UNITS, ApiClient::ERROR_DAYLIMIT_EXCEEDED])) {
// some actions for this errors
} elseif (ApiClient::ERROR_OBJECT_NOT_EXISTS === $result->getError()->getCode()) {
// some actions for this error
} else {
// some actions for other errors
}
Но это уже что-то не то :)} catch (ApiException $exception) {
// some actions for other errors
}
то гарантия перехвата исключения-наследника класса ApiException как бы есть.Тогда вопрос я бы изменил на 'В каком виде АПИ должно возвращать ошибки?'Речь всё же не о том, как API должен возвращать ошибки, а о том, как клиент API должен возвращать ошибки приложению.
Исключения так называются, так как возникают в исключительных ситуациях, типа неожиданный разрыв соединения, отсутствие файла при очередной попытке считать с него данные, когда только что он был доступен и т.д. Такие вещи желательно обрабатывать на уровне АПИ и возвращать в виде обычного ответа с флагом error => TRUE.Опять же, вопрос был про работу клиента API. Тот API, для которого я пишу клиент мне неподвластен. И да, он и возвращает мне ответ с кодом ошибки. Но дальше клиент должен вернуть ответ приложению так, что бы приложению было удобно его обрабатывать. И применять различную логику при обработке разных ошибок прямо рядом с выполнением запроса, а не в глобальной странной функции
errorHandler()
.Исключения так называются, так как возникают в исключительных ситуациях, типа неожиданный разрыв соединения, отсутствие файла при очередной попытке считать с него данные, когда только что он был доступен и т.д.www.php.net/manual/ru/spl.exceptions.php