我一直在寻找这个,我似乎只是遇到了相同的文章,在这段代码中:
try
{
//some code
}
catch(Exception $e){
throw $e;
}
Run Code Online (Sandbox Code Playgroud)
$ e存储在哪里或网站管理员如何看待它?我应该寻找特殊功能吗?
从catch {}块内部抛出的Exception对象(在本例中为$ e)将被下一个最高的try {} catch {}块捕获.
这是一个愚蠢的例子:
try {
try {
throw new Exception("This is thrown from the inner exception handler.");
}catch(Exception $e) {
throw $e;
}
}catch(Exception $e) {
die("I'm the outer exception handler (" . $e->getMessage() . ")<br />");
}
Run Code Online (Sandbox Code Playgroud)
以上的输出是
我是外部异常处理程序(这是从内部异常处理程序抛出的.)
一个好处是Exception实现了__toString()并输出了一个调用堆栈跟踪.
因此,有时在低级别的例外中,我知道我会想看到我的方式,在catch()中,我只是做
error_log($e);
Run Code Online (Sandbox Code Playgroud)