как исправить неперехваченное исключение twilio-php при поиске неправильного числа?

Я слабо разбираюсь в том, как работает выбрасывание исключений ...

При вводе неправильного числа в поиске появляется следующее:

Неустранимая ошибка: неперехваченное исключение Services_Twilio_RestException с сообщением «Запрошенный ресурс / PhoneNumbers / 310-69-5340 не найден» в /home/jimbursch/includes/twilio-php/Services/Twilio.php:297 Трассировка стека: # 0 /home/jimbursch/includes/twilio-php/Services/Twilio.php(265): Base_Services_Twilio -> _ processResponse (Array) # 1 /home/jimbursch/includes/twilio-php/Services/(Swil6Twilio.php -> _ makeIdempotentRequest (Array, '/ v1 / PhoneNumber ...', 1) # 2 /home/jimbursch/includes/twilio-php/Services/Twilio/InstanceResource.php(79): Base_Services_Twilio-> retrieveData ('/ v1 / PhoneNumber ... ') # 3 /home/jimbursch/includes/site_functions.php(655): Services_Twilio_InstanceResource -> __ get (' phone_number ') # 4 /home/jimbursch/includes/admin/misc.php(43): lookupPhone ('310-69-5340')

Вот где, я думаю, это происходит:

private function _processResponse($response)
{
    list($status, $headers, $body) = $response;
    if ($status === 204) {
        return true;
    }
    $decoded = json_decode($body);
    if ($decoded === null) {
        throw new Services_Twilio_RestException(
            $status,
            'Could not decode response body as JSON. ' .
            'This likely indicates a 500 server error'
        );
    }
    if (200 <= $status && $status < 300) {
        $this->last_response = $decoded;
        return $decoded;
    }
    throw new Services_Twilio_RestException(
        $status,
        isset($decoded->message) ? $decoded->message : '',
        isset($decoded->code) ? $decoded->code : null,
        isset($decoded->more_info) ? $decoded->more_info : null
    );
}

person jimbursch    schedule 27.01.2016    source источник
comment
Не могли бы вы поделиться написанным вами кодом, который выдает ошибку, тогда я смогу обновить его, чтобы помочь вам отловить ошибку?   -  person philnash    schedule 27.01.2016


Ответы (1)


Вы должны catch это исключение.

По праву, Twilio SDK выдает исключение при возникновении ошибки.

Вам нужно будет сделать что-то вроде следующего:

<?php
...

try {
    //Your Twilio code you'd like to execute
} catch( Services_Twilio_RestException $e ) {
    echo $e->getMessage(); // Or maybe log it
    // Handle the fact that "The requested resource /PhoneNumbers/310-69-5340 was not found"
}

Улавливая сообщение об ошибке, вы избегаете Fatal error, и ваш скрипт может продолжить работу, позволяя вам зарегистрировать сбой операции (или сообщить что-то еще полезное).

person Repox    schedule 27.01.2016