2015-05-07 4 views
1

Я использую библиотеку UrbanAirship и импортировать его в мой PHP скрипт, а затем использовать его следующим образом:Поймайте PHP исключение

use UrbanAirship\Push as P; 

// Down inside some method... 
try { 
    $dev = P\deviceToken('....'); 
} catch (InvalidArgumentException $e) { 
    continue; 
} 

Если я смотрю на метод deviceToken я вижу их бросать InvalidArgumentException на плохой вход , Однако, когда это происходит, мой скрипт просто прерывается с исключением, вместо того, чтобы ловить его и двигаться дальше.

Есть ли что-то особенное, что я должен сделать, чтобы поймать это исключение?

+0

Какое исключение он выбрасывает? – Rizier123

ответ

2

У меня такое ощущение, что пространства имен могут осложнять вашу проблему.

При перехвате исключения в пространстве имен важно, чтобы вы ушли в глобальное пространство.

Попробуйте это:

use UrbanAirship\Push as P; 

// Down inside some method... 
try { 
    $dev = P\deviceToken('....'); 
} catch (\InvalidArgumentException $e) { 
    continue; 
} 
+1

Спасибо, это была проблема! Добавление \ перед именем исключения заставило его работать должным образом. – Gargoyle

0
continue; 

работает только в петлях. Если вы не хотите ничего делать с исключением, просто оставьте блок catch пустым.

use UrbanAirship\Push as P; 

// Down inside some method... 
try { 
    $dev = P\deviceToken('....'); 
} catch (InvalidArgumentException $e) { 
    // Do nothing 
} 
+0

Я в петле. Я просто показывал отрезанный. Даже если это не так, ваше предложение не решило проблему, что исключение не было поймано. – Gargoyle

Смежные вопросы