티스토리 뷰

SW 개발/PHP

PHP, 에러 및 예외 제어하기

지단로보트 2017.06.08 02:22
// 현재 감시하도록 설정된 에러 레벨을 반환
error_reporting();

// 모든 에러 레벨을 무시
error_reporting(0);

// 모든 에러 레벨을 감시 (개발 환경에서 권장)
error_reporting(E_ALL | E_STRICT);

// 크리티컬한 에러 레벨만 감시
error_reporting(E_ERROR | E_PARSE);

// E_NOTICE, E_WARNING를 제외한 모든 에러 레벨을 감시
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING)

// 발견된 에러를 에러 로그 파일에 기록 (운영 환경에서 권장)
ini_set('log_erros', '1');

// 발견된 에러를 콘솔에 출력하지 않음 (운영 환경에서 권장)
ini_set('display_errors', '0');

// 발견된 에러에 대한 커스텀 핸들러 지정
set_error_handler(array(new ErrorController(), 'handleError'));

// 커스텀 에러 핸들러 클래스 작성
class ErrorController
{
    public function handlerError($error_level, $error_message, $error_file, $error_line, $error_context) {
        // 에러 레벨이 E_WARNING일 경우 통과
        if ($error_level === E_WARNING) {
            return false;
        }

        // 나머지 발견된 에러에 대해서 ErrorException 발생
        throw new ErrorException($error_message, 0, $error_level, $error_file, $error_line);
    }
}
댓글
댓글쓰기 폼