PHP中的Try/Catch块无法捕获异常的情况
P粉226413256
P粉226413256 2023-08-22 15:19:37
0
1
486
<p>我正在尝试运行这个例子#1,来自这个页面:http://php.net/manual/en/language.exceptions.php</p> <pre class="brush:php;toolbar:false;"><?php function inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } return 1/$x; } try { echo inverse(5) . "n"; echo inverse(0) . "n"; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "n"; } // Continue execution echo "Hello Worldn"; ?></pre> <p>然而,我得到的输出不是预期的:</p> <pre class="brush:php;toolbar:false;">0.2 Fatal error: Uncaught exception 'Exception' with message 'Division by zero.' in xxx: 7 Stack trace: #0 xxx(14): inverse(0) #1 {main} thrown in xxx on line 7</pre> <p>我使用的开发环境是<code>UniServer 3.5</code>和<code>PHP 5.2.3</code></p>
P粉226413256
P粉226413256

全部回复(1)
P粉611456309

我刚刚遇到了这个确切的问题,感觉好像我什至已经复制了异常的名称,但它却没有捕获。结果是我的愚蠢错误,但我认为我应该在这里发布我的情况,以防有其他人处于同样的情况。

我的异常在我的命名空间中被称为A,而脚本在一个命名空间中被称为B。问题是我有一个A\MyException,它等于(在PHP中)\B\A\MyException(因为我的脚本在命名空间中被称为B!)。我所要做的就是在异常名称前添加反斜杠(或者叫什么名字)来修复它,使其看起来像这样:\A\MyException

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!