Solution: Find the Thinkphp3.2.3 manual, the content is as follows!
Different from PHP's default exception handling, ThinkPHP throws not a simple error message, but a humanized error page, as shown in the figure below:
Specific error information can only be displayed in debugging mode. If it is in deployment mode, you may see a simple prompt text, such as:
Once the debugging mode is turned off, no specific error message will be prompted after an error occurs. If you still want to see the specific error message, you can set it as follows:
Set in 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>
If you try to access a module or operation that does not exist in deployment mode, a 404 error will be sent.
In debugging mode, an exception will be automatically thrown once a serious error occurs in the system. You can also use ThinkPHP's built-in E method to manually throw an exception.
<code class="hljs bash">E(<span class="hljs-string">'新增失败');</span></code>
Can also support exception codes (default is 0), for example:
<code class="hljs bash">E(<span class="hljs-string">'信息录入错误',<span class="hljs-number">25);</span></span></code>
You can also use the throw keyword to throw an exception. The following writing is equivalent:
<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>
We can customize the display of the exception page. The system's built-in exception template is in Thinkphp/Tpl/think_exception.tpl
in the system directory. You can modify the display of the exception page by modifying the system template.
Also modify the system default exception template file by setting the TMPL_EXCEPTION_FILE configuration parameter, for example:
Set in 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>
Exception variables that can be used in exception templates are:
<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>
Because the exception template uses native PHP code, it can also support the use of any PHP method and system variables.
After an exception is thrown, a specific error message will usually be displayed. If you do not want the user to see the specific error message, you can turn off the display of the error message and set a unified error message, for example:
Set in 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>
After setting, all exception pages will only display the prompt message "An error occurred!", but the specific error information can still be viewed in the log file.
By default of the system, the debugging mode turns on the error message display, and the deployment mode turns off the error message display.
Another way is to configure the ERROR_PAGE parameter to point all exceptions and errors to a unified page, thereby preventing users from seeing exception information. This is usually used in deployment mode. The ERROR_PAGE parameter must be a complete URL address, for example:
Set in ThinkPHP/Conf/convention.php
<code class="hljs php"><span class="hljs-string">'ERROR_PAGE' =><span class="hljs-string">'/Public/error.html' 系统默认为空</span></span></code>
If it is not in the current domain name, you can also specify the domain name:
<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>
Note that the page pointed to by ERROR_PAGE can no longer use abnormal template variables.