Я пытаюсь настроить сообщения об ошибках.
Для обработки ошибок я использовал блок try / catch в соответствии с этот Повторно документация, например, такая:
try {
$account = Recurly_Account::get('my_account_id');
$subscription = new Recurly_Subscription();
$subscription->account = $account;
$subscription->plan_code = 'my_plan_code';
$subscription->coupon_code = 'my_coupon_code';
/* .. etc .. */
$subscription->create();
}
catch (Exception $e) {
$errorMsg = $e->getMessage();
print $errorMsg;
}
Я хотел использовать код в блоке catch следующим образом:
catch (Exception $e) {
$errorCode = $e->getCode();
print $myErrorMsg[$errorCode]; // array of my custom messages.
}
Но метод getCode () всегда возвращает ноль для всех возможных ошибок.
Мой вопрос для Recurly Team (или кто там в этой теме):
Как я могу получить код ошибки для ошибок? Или, пожалуйста, объясните мне, как я могу решить эту тему. Спасибо!
Если вы посмотрите на PHP-клиент на Github и поищите «throw new», что и делается, когда выдается исключение, вы увидите, что они не устанавливают код ошибки исключения — второй параметр метода конструктора исключений.
Повторно клиент PHP на Github: https://github.com/recurly/recurly-client-php/search?utf8=%E2%9C%93&д = бросок + новый
Исключительная документация PHP: http://php.net/manual/en/language.exceptions.extending.php
Следовательно, вам нужно будет либо поймать больше исключений на основе их имени.
то есть
catch (Recurly_NotFoundError $e) {
print 'Record could not be found';
}
ИЛИ ЖЕ
посмотрите на сообщение об исключении и сравните его
catch (Exception $e) {
$errorMessage = $e->getMessage();
if($errorMessage=='Coupon is not redeemable.')
{
$myerrorCode=1;
}
//Add more else if, or case switch statement to handle the various errors you want to handle
print $myErrorMsg[$myerrorCode]; // array of my custom messages.
}
Других решений пока нет …