> php教程 > php手册 > Thinkphp는 예외 오류 처리를 어떻게 구현합니까?

Thinkphp는 예외 오류 처리를 어떻게 구현합니까?

WBOY
풀어 주다: 2016-11-30 23:59:38
원래의
1741명이 탐색했습니다.

해결책: Thinkphp3.2.3 매뉴얼을 찾아보세요. 내용은 다음과 같습니다!

PHP의 기본 예외 처리와 달리 ThinkPHP는 아래 그림과 같이 단순한 오류 메시지가 아닌 인간화된 오류 페이지를 표시합니다.

Thinkphp는 예외 오류 처리를 어떻게 구현합니까?

특정 오류 정보는 디버깅 모드에서만 표시될 수 있습니다. 배포 모드에 있는 경우 다음과 같은 간단한 프롬프트 텍스트가 표시될 수 있습니다.

Thinkphp는 예외 오류 처리를 어떻게 구현합니까?

디버깅 모드를 끄면 오류가 발생한 후에도 특정 오류 메시지가 표시되지 않습니다. 그래도 특정 오류 메시지를 보려면 다음과 같이 설정하면 됩니다.

ThinkPHP/Conf/convention.php에 설정

<code class="hljs php"><span class="hljs-string">'SHOW_ERROR_MSG'        =>  <span class="hljs-keyword">true,    <span class="hljs-comment">// 显示错误信息</span></span></span></code>
로그인 후 복사

배포 모드에서 존재하지 않는 모듈이나 작업에 접근하려고 하면 404 오류가 전송됩니다.

디버깅 모드에서는 시스템에 심각한 오류가 발생하면 자동으로 예외가 발생합니다. ThinkPHP에 내장된 E 메소드를 사용하여 수동으로 예외를 발생시킬 수도 있습니다.

<code class="hljs bash">E(<span class="hljs-string">'新增失败');</span></code>
로그인 후 복사

은 예외 코드(기본값은 0)도 지원할 수 있습니다. 예:

<code class="hljs bash">E(<span class="hljs-string">'信息录入错误',<span class="hljs-number">25);</span></span></code>
로그인 후 복사

throw 키워드를 사용하여 예외를 발생시킬 수도 있습니다.

<code class="hljs php"><span class="hljs-keyword">throw <span class="hljs-keyword">new \Think\<span class="hljs-keyword">Exception(<span class="hljs-string">'新增失败');</span></span></span></span></code>
로그인 후 복사

예외 페이지 표시를 사용자 정의할 수 있습니다. 시스템에 내장된 예외 템플릿은 시스템 디렉토리의 Thinkphp/Tpl/think_exception.tpl에 있습니다. 예외 페이지 표시는 시스템 템플릿을 수정하여 수정할 수 있습니다.

또한 TMPL_EXCEPTION_FILE 구성 매개변수를 설정하여 시스템 기본 예외 템플릿 파일을 수정합니다. 예:

ThinkPHP/Conf/convention.php에 설정

<code class="hljs php"><span class="hljs-string">'TMPL_EXCEPTION_FILE' => APP_PATH.<span class="hljs-string">'/Public/exception.tpl'</span></span></code>
로그인 후 복사

예외 템플릿에 사용할 수 있는 예외 변수는 다음과 같습니다.

<code class="hljs bash"><span class="hljs-variable">$e[<span class="hljs-string">'file']异常文件名
<span class="hljs-variable">$e[<span class="hljs-string">'line'] 异常发生的文件行数
<span class="hljs-variable">$e[<span class="hljs-string">'message'] 异常信息
<span class="hljs-variable">$e[<span class="hljs-string">'trace'] 异常的详细Trace信息</span></span></span></span></span></span></span></span></code>
로그인 후 복사

예외 템플릿은 기본 PHP 코드를 사용하므로 모든 PHP 메서드 및 시스템 변수의 사용도 지원할 수 있습니다.

예외가 발생한 후 일반적으로 특정 오류 메시지가 표시됩니다. 사용자에게 특정 오류 메시지가 표시되지 않도록 하려면 오류 메시지 표시를 끄고 통합된 오류 메시지를 설정할 수 있습니다. :

ThinkPHP/Conf/convention.php에 설정

<code class="hljs php"><span class="hljs-string">'SHOW_ERROR_MSG' =>    <span class="hljs-keyword">false,
<span class="hljs-string">'ERROR_MESSAGE'  =>    <span class="hljs-string">'发生错误!'</span></span></span></span></code>
로그인 후 복사

설정 후 모든 예외 페이지에는 "오류가 발생했습니다!"라는 메시지만 표시되지만, 구체적인 오류 정보는 로그 파일에서 계속 확인할 수 있습니다.

시스템 기본적으로 디버깅 모드에서는 오류 메시지 표시가 켜지고 배포 모드에서는 오류 메시지 표시가 꺼집니다.

또 다른 방법은 사용자가 예외 정보를 보지 못하도록 모든 예외와 오류를 통합 페이지로 가리키도록 ERROR_PAGE 매개변수를 구성하는 것입니다. 이는 일반적으로 배포 모드에서 사용됩니다. ERROR_PAGE 매개변수는 완전한 URL 주소여야 합니다. 예:

ThinkPHP/Conf/convention.php에 설정

<code class="hljs php"><span class="hljs-string">'ERROR_PAGE' =><span class="hljs-string">'/Public/error.html'     系统默认为空</span></span></code>
로그인 후 복사

현재 도메인 이름에 없으면 다음과 같이 도메인 이름을 지정할 수도 있습니다.

<code class="hljs scala"><span class="hljs-symbol">'ERROR_PAGE' =><span class="hljs-symbol">'http:<span class="hljs-comment">//www.myDomain.com/Public/error.html'</span></span></span></code>
로그인 후 복사

ERROR_PAGE가 가리키는 페이지는 더 이상 비정상적인 템플릿 변수를 사용할 수 없습니다.

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