2015-06-19 93 views
0

在下面的代码中,字符串“hi”从不输出。如何调试大量PHP应用程序的静默失败?

MainDispatcher这个类只是一个大型框架的推广,它下面有一个大型应用程序,它“直到前一天都工作正常”(我试过git-bisect它,但这是另一篇文章的故事)。

如何找出代码在哪里静默终止执行?

require_once "autoload/classes.php"; 

try { 

     $main = new MainDispatcher(root()); 

     if ($main->httpHeaders()) { 
       $main->handleRequest(); 
     } 
echo 'hi'; 
} 
catch(Exception $e) { 
echo 'hi'; 
     Log::error($e, $main->config->traceLog); 
} 
+3

错误日志为空? – frz3993

+1

打开错误报告? – diggersworld

+0

也许'MainDispatcher'在那里有一个die()或exit()。 – Drakes

回答

0

您的移动电话require_once TRY块内,因为如果这是失败的,它不会被抓到。另外,如果您不确定如何访问日志并且只是调试,则打印异常而不是记录日志。因此在CATCH块中添加一个echo $e->getMessage();

我认为你应该开始看到你的问题的原因。