오래전부터 사용하는 내장함수 try-catch 블록으로 잡히지 않는 오류
앞으로 @ 사용하지 말라고 하니 새로 만드는 프로그램은 try-catch 감싸서 처리 하는 것이 좋다.
그래서 필요한 것으로 아래를 참고하면 된다.
그리고 아래 복원하는 함수면 한 줄이기 때문에 함수가 왜? 필요할까 싶지만 이런 경우도 함수로 만들어 사용하면 후에 어려운 일이 발생 했을 때 해결 할 수 있는 좋은 일이 생기게 되기도 한다.
# 사용자 오류처리기
convertErrorsToExceptions();
#
try {
$html = file_get_contents($link, false, null);
} catch (ErrorException $t) {
echo "Error: " . $t->getMessage();
}
# 기본 오류처리기로 되돌리기
restoreDefaultErrorHandler();
예전엔 오류가 보기 싫으면 @file_get_contents 했을 텐데요.
앞으로는 사용할 수 없다고 하니 오류를 잡아서 처리 해야 합니다.
/**
* 사용자 정의 오류 처리기
* @return void
*/
function convertErrorsToExceptions() {
set_error_handler(function($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
});
}
/**
* 기본 오류 처리기 복원
* @return void
*/
function restoreDefaultErrorHandler() {
restore_error_handler();
}
간단한 기능이라도 함수로 만들어 사용해야 확장성이 용이함을 후에 느낄 수 있습니다.