Блоки try-catch в PHP: способны ли они перехватывать недопустимые типы arg?

Background: Предположим, у меня есть следующий явно неправильный PHP:

    try{
        $vtest = '';
        print(array_pop($vtest));
    }catch(Exception $exx){}

Чтобы он работал с array_pop, $ vtest, очевидно, должен быть массивом, а не строкой. Тем не менее, когда я запускаю этот код, появляется предупреждение. Я не хочу этого, я просто хочу, чтобы код молча провалился.

Question: Есть ли что-то особенное в PHP try-catch по сравнению с другими языками, которые заставляют это не работать?

Disclaimer: Just for reference, it is true there are other ways to handle this situation in PHP, but these are undesirable. The goal here is to avoid:

The "at-sign" trick:

        $vtest = '';
        print(@array_pop($vtest)); // <-- would like to avoid this

Type Casting:

        $vtest = '';
        $vtest = (array)$vtest;  
        print(array_pop($vtest));

Ответы на вопрос(4)

Ваш ответ на вопрос