Bloki try-catch PHP: czy są w stanie wychwycić nieprawidłowe typy arg?

Tło: Przypuśćmy, że mam następujące oczywiście niepoprawne PHP:

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

Aby działało z array_pop, $ vtest powinien oczywiście być tablicą, a nie łańcuchem. Niemniej jednak po uruchomieniu tego kodu wyświetlane jest Ostrzeżenie. Nie chcę tego, chcę tylko, aby kod zawiódł bezgłośnie.

Pytanie: Czy jest coś wyjątkowego w próbie catch PHP w porównaniu z innymi językami, które powodują, że nie działa?

Zrzeczenie się: Dla porównania prawdą jest, że istnieją inne sposoby radzenia sobie z tą sytuacją w PHP, ale są one niepożądane. Celem jest tutaj:

Sztuczka „na znak”:

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

Casting typu:

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

questionAnswers(4)

yourAnswerToTheQuestion