问答详情
源自:6-1 PHP异常处理之抛出一个异常

后面代码不执行,但是我再输出个什么仍然能输出,那个不执行说的是什么,不是很理解啊

后面代码不执行,但是我再输出个什么仍然能输出,那个不执行说的是什么,不是很理解啊

提问者:_亓 2015-01-07 22:28

个回答

  • 秋枫InSpring
    2015-01-21 13:58:57
    已采纳

    抛出异常,如果有catch ,会直接进入catch 代码块里,执行catch里面的代码,而不会再去执行抛出异常语句之后的代码。

    $filename = 'test.txt';

    try {

        if (!file_exists($filename)) {

          print ('before');

          throw new Exception('文件不存在');

          print ('after');

        }

    } catch(Exception $e) {

        echo $e->getMessage();

        echo 'something';

    }

    例如这个,会执行print ('before'); 

    但throw new Exception('文件不存在');出现了异常,所以会直接去执行 echo $e->getMessage();echo 'something';  会跳过  print ('after'); 这句代码