Я знаю, что это странно, но в моем коде у меня есть ошибки режима разработки и ошибки рабочего режима. У меня есть эта функция:
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 уровня?