Usi if(is_object($class) && method_exists($method)){}

Non c'e' un modo piu' "elegante", call_user_func_array puo' restituire solo NULL se i parametri non sono corretti, o FALSE se fallisce qualcosa dopo la verifica dei parametri.
Ma non puoi affidarti a quel NULL, perche' se anche la funzione che chiami restituisce NULL, non puoi distinguerli.

Puoi solo fare un trucco - se tu sai che la funzione che gli passi deve restituire sempre qualsiasi valore tranne NULL/FALSE (ne devi essere sicuro al 100%), puoi controllare il valore del return di call_user_func_array(). Se e' NULL, c'e' stato qualche problema..