PHP에서는 강력하고 안전한 애플리케이션을 유지하려면 오류 및 예외 처리가 필수적입니다. 오류 및 예외를 적절하게 처리하면 애플리케이션이 예측 가능하게 작동하고, 사용자에게 의미 있는 피드백을 제공하고, 디버깅 및 향후 개선을 위한 문제를 기록할 수 있습니다. 이 기사에서는 PHP의 오류와 예외 간의 차이점, PHP가 오류를 처리하는 방법, 오류 및 예외 처리에 대한 모범 사례에 대해 설명합니다.
PHP의 오류는 프로그램 실행 중에 예상치 못한 동작이 발생하여 스크립트가 종료되는 상황을 의미합니다. PHP는 오류를 처리하고 대응하기 위한 여러 내장 메커니즘을 제공합니다.
PHP에는 발생할 수 있는 다양한 유형의 오류가 있습니다.
PHP에서는 error_reporting() 함수를 사용하거나 php.ini 파일의 error_reporting 지시문을 설정하여 보고해야 하는 오류 유형을 제어할 수 있습니다.
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
가장 일반적인 오류 보고 수준은 다음과 같습니다.
내장된 PHP 함수를 사용하여 오류를 처리할 수 있습니다.
예:
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
예:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
예외는 런타임 오류를 보다 적절하게 처리할 수 있는 메커니즘입니다. 기존 오류와 달리 예외를 사용하면 오류를 포착하고 통제된 방식으로 처리할 수 있습니다.
throw 키워드를 사용하여 PHP에서 예외를 발생시킬 수 있습니다. 예외가 발생하면 프로그램의 정상적인 흐름이 중단되고 예외를 처리할 수 있는 가장 가까운 catch 블록으로 제어가 전달됩니다.
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
예외를 포착하려면 try-catch 블록을 사용합니다. try 블록에는 예외를 발생시킬 수 있는 코드가 포함되어 있고, catch 블록에는 예외를 처리하는 코드가 포함되어 있습니다.
// Trigger a custom user error trigger_error("This is a custom error!", E_USER_NOTICE);
예외가 발생하면 예외 클래스의 개체가 catch 블록으로 전달됩니다. 이 객체에는 다음과 같은 예외에 대한 유용한 정보가 포함되어 있습니다.
PHP에 내장된 예외 클래스를 확장하여 사용자 정의 예외 클래스를 정의할 수 있습니다. 이를 통해 다르게 포착하고 처리할 수 있는 보다 구체적인 유형의 예외를 생성할 수 있습니다.
// Throwing an exception throw new Exception("Something went wrong!");
예외가 발생했지만 catch 블록에서 포착되지 않은 경우 PHP는 치명적 오류를 생성하고 예외가 포착되지 않았음을 나타내는 메시지를 표시합니다. 이를 방지하려면 잠재적으로 발생하는 예외에 대한 적절한 try-catch 블록이 코드에 포함되어 있는지 항상 확인하세요.
php.ini에 로그인하는 오류의 예:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
오류:
예외:
PHP에서는 오류 및 예외 처리가 모두 애플리케이션이 예상치 못한 상황을 적절하게 처리하는 데 매우 중요합니다. 오류는 일반적으로 구문 오류 및 경고와 같은 즉각적인 문제에 사용되는 반면, 예외는 런타임 문제를 처리하는 보다 강력하고 유연한 방법을 제공합니다. 차이점을 이해하고 올바른 맥락에서 올바른 접근 방식을 사용하면 보다 안정적이고 유지 관리가 쉬운 PHP 애플리케이션을 만들 수 있습니다.
위 내용은 PHP가 오류 및 예외 처리를 처리하는 방법: 종합 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!