如何禁用PHP的堆栈跟踪?

时间:2015-10-07 22:39:27

标签: php

我的默认PHP配置在浏览器窗口中打印堆栈跟踪。如何禁用它并将其替换为自定义错误页面?

1 个答案:

答案 0 :(得分:0)

您可以运行异常处理程序来修改异常的行为并替换堆栈跟踪。

例如:

<?php
function exception_handler($exception) {
   echo "Uncaught exception: " , $exception->getMessage(), "\n";
  }

   set_exception_handler('exception_handler');

   throw new Exception('Uncaught Exception');
   echo "Not Executed\n";
  ?>

可以修改此选项以在遇到错误时运行特定指令。

异常处理程序处理之前未捕获的异常。它停止执行你的程序是异常的本质 - 因为它声明了程序无法继续的特殊情况(除了你抓住它)

对于这样的情况,您可以在类

中运行它

如果您希望类实例处理异常,请执行以下操作:

<?php
class example {
   public function __construct() {
   @set_exception_handler(array($this, 'exception_handler'));
   throw new Exception('DOH!!');
   }

    public function exception_handler($exception) {
       print "Exception Caught: ". $exception->getMessage() ."\n";
    }
 }

     $example = new example;

   ?>