
Yaf_Dispatcher::setErrorHandler를 사용하여 에러 핸들러를 설정했는데, 에러 핸들러가 호출되지 않는 문제가 발생하는 이유는 다음과 같습니다.
1. 에러 핸들러 함수가 존재하지 않거나, 존재하지만 호출되지 않는 경우
2. 에러 핸들러 함수가 잘못된 형식으로 설정된 경우
3. 에러 핸들러 함수가 호출되지 않는 경우, PHP의 에러 레벨이 설정된 에러 핸들러 함수보다 낮은 경우
에러 핸들러를 설정할 때 정확한 형식은 다음과 같습니다.
#hostingforum.kr
php
$dispatcher->setErrorHandler(array(
'callback' => 'myErrorHandler',
'parameters' => array('param1', 'param2'), // 옵션
'threshold' => E_ALL & ~E_NOTICE, // 옵션
));
위 코드에서 'myErrorHandler'는 함수 이름이어야 하며, 함수는 다음과 같은 형식으로 작성되어야 합니다.
#hostingforum.kr
php
function myErrorHandler($errno, $errstr, $errfile, $errline, $errcontext) {
// 에러 핸들링 코드
}
위 함수는 5개의 파라미터를 받을 수 있으며, 각각의 파라미터는 다음과 같은 의미를 가지고 있습니다.
- $errno: 에러 코드
- $errstr: 에러 메시지
- $errfile: 에러가 발생한 파일 이름
- $errline: 에러가 발생한 줄 번호
- $errcontext: 에러가 발생한 컨텍스트 (배열)
위 함수는 에러 핸들링 코드를 작성하여 에러를 처리하는 역할을 합니다.
2025-06-04 10:34