php, можно ли создавать исключения на 2 уровня выше?

Я знаю, что это странно, но в моем коде у меня есть ошибки режима разработки и режима производства ошибки.Вот функция, которая у меня есть:

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

Я написал эту функцию в своем классе базы данных, так что, если произойдет ошибка, мне не нужно будет проверять, находимся ли мы в режиме разработки или нет!

Итак, я подумал, что смогу внедрить повторно используемый код. Однако, поскольку я выбрасываю исключение из этой функции, я в основном просто использую функцию, которая вернет выброшенную ошибку. Довольно бесполезен в производственном режиме.

Мне пришлось бы делать это каждый раз, когда я хочу его использовать:

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

А НЕ ПРОСТО

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

, чтобы избежать написания блока try... catch для каждой функции ошибки, которую я хочу вызвать... есть ли как поднять исключение на 2 уровня?

5
задан AlexMorley-Finch 12 March 2012 в 08:42
поделиться