se mi posti l'errore preciso, magari riesco a darti qualche info in piu' 
spero di nn dire baggianate, ma nn sono sicuro che in php tu possa lanciare un metodo il cui nome sia contenuto in una variabile. Piuttosto io userei la call_user_function. Personalmente nn l'ho mai provata, ma questo codice d'esempio preso su php.net sembra abbastanza chiarificatore:
codice:
class myclass {
function say_hello()
{
echo "Hello!\n";
}
}
$classname = "myclass";
call_user_func(array($classname, 'say_hello'));
Anche la funzione method_exsist magari puo' aiutarti
codice:
bool method_exists ( object object, string method_name )
per quanto riguarda le eccezioni...beh...le funzioni buildin di php raramente lanciano eccezioni. Magari potresti encapsulare una delle due funzioni che ti ho dato sopra in una classe e definirle in modo che lancino le eccezioni, se proprio ti servono...