php, ¿se pueden lanzar excepciones 2 niveles arriba?

Sé que esto es raro, pero en mi código, tengo errores en el modo de desarrollo y errores en el modo de producción. Esta es la función que tengo:

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 );
    }
}

¡Escribí esta función en mi clase de base de datos, de modo que si ocurre un error, no tengo que proporcionar la verificación si estamos en modo de desarrollo o no!

Así que pensé que podría externalizar el código reutilizable. Sin embargo, debido a que estoy lanzando una excepción de esta función, básicamente estoy usando una función, que devolverá un error arrojado. Bastante inútil en modo producción.

Tendría que hacer esto cada vez que quiera usarlo:

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

RATHER QUE SOLO

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

so para evitar escribir un intento ... bloque de captura para cada función de error que quiero llamar ... ¿hay alguna forma de lanzar los niveles de excepción 2?

Respuestas a la pregunta(6)

Su respuesta a la pregunta