PHP-Try-Catch-Blöcke: Können sie ungültige Arg-Typen abfangen?

Hintergrund: Angenommen, ich habe das folgende offensichtlich falsche PHP:

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

Damit es mit array_pop funktioniert, sollte $ vtest offensichtlich ein Array sein, kein String. Trotzdem, wenn ich diesen Code ausführe, wird die Warnung angezeigt. Ich möchte das nicht, ich möchte nur, dass der Code im Hintergrund fehlschlägt.

Frage: Gibt es etwas Besonderes an PHP try-catch im Vergleich zu anderen Sprachen, das dazu führt, dass dies nicht funktioniert?

Haftungsausschluss: Nur zum Nachschlagen, es gibt zwar andere Möglichkeiten, um mit dieser Situation in PHP umzugehen, aber diese sind unerwünscht. Das Ziel ist hier zu vermeiden:

Der "At-Sign" Trick:

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

Art Casting:

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage