> 백엔드 개발 > PHP 문제 > PHP 예외 처리는 어떤 오류를 포착합니까?

PHP 예외 처리는 어떤 오류를 포착합니까?

王林
풀어 주다: 2023-02-24 16:52:01
원래의
2710명이 탐색했습니다.

PHP 예외 처리는 어떤 오류를 포착합니까?

PHP에는 세 가지 유형의 오류 보고서가 있습니다.

1. 오류, 구문 분석 오류, 치명적인 오류

3. 참고

결과:

Error-> 치명적인 오류, 다운로드한 프로그램의 실행을 종료합니다. 구문 오류가 있으면 PHP가 전혀 실행되지 않습니다.

경고 -> 실행이 종료되지는 않지만 결과에 영향을 미칩니다.

참고 ->는 실행을 종료하지 않으며 결과에 영향을 미치지 않습니다.

사용자에게 더 나은 경험을 제공하기 위해 표시가 아닌 출력되는 모든 오류 출력을 차단합니다. 하지만 이 경우 관리자는 오류를 볼 수 없습니다. 오류는 페이지에 표시되지 않지만 관리자가 볼 수 있도록 로그가 생성됩니다.

은 모든 페이지의 오류 표시가 차단되지만 오류 출력은 차단되지 않음을 의미합니다.

ini_set('log_errors','on'); //开启日志写入功能 ini_set('error_log','myerror.log');
//日志的存放位置 ini_set('display_errors','off'); //屏蔽页面显示 error_reporting(E_ALL); //输出所有错误
echo 123; echo $str; //这个会出现一个注意,表示未声明变量 echo date(); //警告,没有传参 echo dae(); 
//致命错误,找不到这个函数 echo 123;
로그인 후 복사
error_reporting(~E_ALL)将所有输出都屏蔽掉了,自然,管理员也看不到了。我不要屏蔽所有输出,我只要屏蔽所有显示ini_set('display_errors','off');

예외:

PHP 언어에서는 자동으로 예외를 발생시키는 ​​JAVA와 달리 모든 예외를 직접 발생시켜야 합니다. 이것이 바로 PHP 소스 코드에서 예외 처리가 거의 보이지 않는 이유입니다.

진술 이유.

예외 및 오류:

예외는 프로그램 운영 중 기대에 미치지 못하는 조건 및 일반적인 프로세스와 다른 상황을 말합니다. 이 오류는 컴파일러가 검사 설정을 전달하고 실행하는 것을 방해하는 잘못된 구문이나 환경 문제로 인해 발생하는 자체 문제입니다.

PHP에는 처음에는 예외 처리 기능이 없었기 때문에 나중에 엔터프라이즈급 개발에 들어가기 위해 모방했습니다. PHP가 비정상적인 코드를 발견하면 대부분의 경우 예외 대신 오류가 직접 발생합니다.

php에서는 예외가 발생한 후에 예외를 잡기 위해 try...catch만 사용할 수 있습니다(일반적인 경우이며 일부 예외는 자동으로 잡을 수 있습니다).

예외는 일반적으로 다음 시나리오에서 PHP에서 사용됩니다:

1. 프로그램의 비관적 예측: 코드가 예측할 수 있는 다양한 상황과 예측할 수 없는 상황을 하나씩 처리할 수 없다고 생각하는 경우.

2. 프로그램 요구 사항 및 비즈니스 문제: 데이터의 일관성이 매우 높은 경우 try...catch를 사용하여 예외로 인한 논리적 중단을 최소화할 수 있으며 문제 해결 후

, 비즈니스 로직의 무결성에 영향을 미치지 않습니다. .

3. 언어 수준의 견고성 요구 사항: 런타임 프로세스를 정확하게 제어하여 프로그램이 중단될 때 try...catch를 사용하여 가능한 오류 범위를 예측 가능하게 줄이고 적시에 예외를 포착하여 해당 해결 방법을 적용합니다.

.

PHP의 오류:

오류는 스크립트가 비정상적으로 실행되는 상황을 의미합니다.

PHP의 주요 오류 수준은 다음과 같습니다.

deprecated: 最低级别的错误,表示"不推荐, 不建议"。例如在php 5中使用了ereg系列的正则函数就会出现。这类错误一般由于使用了不推荐的、过时的函数或语法造成。不影响程序正常运行,但建议修正。
notice: 一般指语法中存在不恰当的地方。如使用变量但是未定义就会报此错误。不影响程序正常流程。
warning: 较高级别的错误,在语法中出现很不恰当的情况才会出现此错误,比如函数参数不匹配。会导致得不到预期的结果,需要修改代码。
fetal error: 致命错误,直接导致程序终止运行。这类错误必须修改。
prase error: 语法解析错误,上面几种都属于运行时错误,此错误在运行前就会抛出。
로그인 후 복사

사용자 정의된 오류 처리기:

set_error_handler() 함수를 사용하여 오류 처리기를 호스팅할 수 있으며 오류 처리 프로세스를 사용자 정의할 수 있습니다.

호스팅을 취소하려면 동일한 페이지에서 Restore_error_handler()를 사용하여 호스팅을 취소할 수 있으며, 직접 오류를 발생시키려면 Trigger_error() 함수를 사용할 수 있습니다.

추천 튜토리얼:

PHP 비디오 튜토리얼

위 내용은 PHP 예외 처리는 어떤 오류를 포착합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿