我正試圖在庫中捕獲Laravel異常。無法捕獲Laravel 4異常
namespace Marsvin\Output\JoomlaZoo;
class Compiler
{
protected function compileItem($itemId, $item)
{
$boom = explode('_', $itemId);
$boom[0][0] = strtoupper($boom[0][0]);
$className = __NAMESPACE__."\\Compiler\\".$boom[0];
try {
$class = new $className(); // <-- This is line 38
} catch(\Symfony\Component\Debug\Exception\FatalErrorException $e) {
throw new \Exception('I\'m not being thrown!');
}
}
}
這一點,除了我得到:
file: "C:\MAMP\htdocs\name\app\libraries\WebName\Output\JoomlaZoo\Compiler.php"
line: 38
message: "Class 'Marsvin\Output\JoomlaZoo\Compiler\Deas' not found"
type: "Symfony\Component\Debug\Exception\FatalErrorException"
類的名稱是自願錯誤。
編輯1:
我注意到,如果我扔try
語句中的異常,我可以捕獲該異常:
try {
throw new \Exception('I\'d like to be thrown!');
} catch(\Exception $e) {
throw new \Exception('I\'m overriding the previous exception!'); // This is being thrown
}
快速檢查:做一個'抓(\例外$ E){拋出新的\異常(」拋出的異常是一個「.get_class($ e);}',所以你知道它是否真的是你正在試圖捕獲的正確的一個 – Wrikken 2014-10-29 16:22:48
你也有一個語法錯誤'throw new \ Exception('我不是被拋出!');'字符串中的引號應該被轉義或者使用雙引號,但這可能只是這個例子的一個問題 – Bogdan 2014-10-29 16:24:43
@Wrikken我嘗試過了,但是我仍然得到了Symphony的'FatalErrorException'。添加輸出到問題 – siannone 2014-10-29 16:26:52