2015-06-19 37 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();

我認爲你應該開始看到你的問題的原因。