php, as exceções podem ser lançadas 2 níveis acima?

Eu sei que isso é um estranho, mas no meu código, eu tenho erros no modo de desenvolvimento e erros no modo de produção. Esta é a função que tenho:

private function error($message, $mysql_error = null){
    if( DEVELOPMENT_MODE ){
        $exp = new Exception();
        $trace = $exp -> getTrace();
        array_shift( $trace ); // removes this functions from trace
        $data["Error Mg"] = $message;
        $data["MySQL Er"] = ( is_null ( $mysql_error ) ) ? "" : $mysql_error;
        array_unshift($trace, $data );
        fkill( $trace );  // formats array and then dies
    }
    else{
        throw new Exception ( $data );
    }
}

Eu escrevi essa função na minha classe de banco de dados, para que, se ocorrer um erro, não precise fornecer a verificação se estamos no modo de desenvolvimento ou nã

Então eu pensei que poderia externalizar o código reutilizável. No entanto, como estou lançando uma exceção dessa função, basicamente estou apenas usando uma função que retornará um erro gerado. Bastante inútil no modo de produçã

Eu teria que fazer isso toda vez que eu quiser usá-lo:

try{
    $this -> error( "Invalid Link After Connect.", mysql_error () );
} catch ( Exception $exp ){
    throw $exp;
}

TRABALHO QUE APENAS

$this -> error( "Invalid Link After Connect.", mysql_error () );

para evitar escrever uma tentativa ... bloco de captura para todas as funções de erro que eu quero chamar ... existe alguma maneira de lançar a exceção 2 níveis acim