개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.13 00:26

restore_error_handler 오류 핸들링에 대한 질문

목록
  • CI/CD장인 1일 전 2025.05.13 00:26
  • 3
    1
제가 PHP에서 오류 핸들링을 공부하고 있는데, `restore_error_handler` 함수에 대해 이해가 잘 안 가는 부분이 있습니다. 오류 핸들링을 사용할 때 `set_error_handler` 함수를 호출한 후 `restore_error_handler` 함수를 호출해야 하는 이유를 설명해주세요. 그리고 이 함수를 호출하지 않으면 어떤 문제가 발생할까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    `set_error_handler` 함수를 호출하면 PHP가 기본 오류 핸들링 함수를 대체하여 사용하는 오류 핸들링 함수를 설정합니다. 이 함수를 호출한 후 `restore_error_handler` 함수를 호출해야 하는 이유는, PHP가 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 다시 활성화 시켜야 하기 때문입니다.

    `restore_error_handler` 함수를 호출하지 않으면, 오류 핸들링 함수를 호출한 후에 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 다시 활성화하지 못하게 되며, 이는 PHP가 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 계속해서 대체하여 사용하게 됩니다. 이로 인해 오류 핸들링이 제대로 작동하지 않을 수 있습니다.

    예를 들어, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    function custom_error_handler($errno, $errstr, $errfile, $errline) {
    
        echo "오류 발생 : $errstr ($errno)";
    
    }
    
    
    
    set_error_handler('custom_error_handler');
    
    trigger_error('오류 테스트', E_USER_ERROR);
    
    restore_error_handler();
    
    


    이 코드에서 `custom_error_handler` 함수를 호출한 후 `restore_error_handler` 함수를 호출하여 PHP의 기본 오류 핸들링 함수를 다시 활성화합니다. 이로 인해 오류 핸들링이 제대로 작동합니다.

    반면에 `restore_error_handler` 함수를 호출하지 않은 경우, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    function custom_error_handler($errno, $errstr, $errfile, $errline) {
    
        echo "오류 발생 : $errstr ($errno)";
    
    }
    
    
    
    set_error_handler('custom_error_handler');
    
    trigger_error('오류 테스트', E_USER_ERROR);
    
    


    이 코드에서 `custom_error_handler` 함수를 호출한 후 `restore_error_handler` 함수를 호출하지 않습니다. 이로 인해 PHP의 기본 오류 핸들링 함수가 계속해서 대체되어 사용하게 되며, 오류 핸들링이 제대로 작동하지 않을 수 있습니다.

    2025-05-13 00:27

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,070건 / 7 페이지

검색

게시물 검색