为什么php需要手动抛出异常?

来源:6-1 PHP异常处理之抛出一个异常

QQ_hong

2015-06-23 00:18

if (!file_exists($filename)) {
      throw new Exception('文件不存在');
    }

类似例子中,需要先判断$filename是否存在,不存在就抛出异常,这样还有什么意义?既然我自己都判断了,那还需要抛出什么异常?完全可以 echo '文件不存在';,这样就行了,也不会中断指令流的执行。

以前学的java都可以直接try{}catch(){}把有可能出错的代码放在try中,出错了就自动抛出了,完全不用手动抛出异常

写回答 关注

3回答

  • 关于淡淡的淡淡的
    2015-06-23 10:24:00
    已采纳

    因为php的异常处理弱爆了,在php里,遇到任何自身错误都会触发一个错误,而不是抛出异常,如果想使用异常处理不可预测的问题,是办不到的,也就是说,php通常是无法自动扑获有意义的异常的,他把所有不正常的情况都视为错误,你想扑获异常就得使用if...else...结构

    QQ_hon...

    额,谢谢,PHP的异常处理果然弱爆了

    2015-06-23 11:21:39

    共 1 条回复 >

  • 乔布儿
    2015-12-20 16:47:45

    刚看Java的异常处理,突然发现PHP的异常处理弱爆了...

    不过异常的一个原因就是讲异常处理 和 正常处理分开...就这一点,PHP的异常处理还是有点用处的...

    原来php不是世界上最好的语言....

  • 关于淡淡的淡淡的
    2015-06-23 10:30:42

    php只有你自动throw后,才能扑获异常

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题