php没有架构师,为什么80%的码农都做不了架构师?>>>    <?phpclass Test {        public func...

class Test {

public function __construct() {

echo "__construct
";

}

public function test() {

echo "in test()
";

throw new Exception("error", 500); // 抛出异常

}

public function __destruct() {

echo "__destruct
";

}

}

$test = new Test();

$test->test();

方法里抛出异常后,不会调用析构函数:

8557b40c2e0ffc0c978f4bf25177e76a.png

报了Fatal error,应该程序就中止运行了,就不会再调析构函数了。

解决方法:

调用类方法时加上try catch捕获异常,使程序更健壮些:

$test = new Test();

try {

$test->test();

} catch(Exception $e) {

echo $e->getMessage() . "
";

}

6f6dc2e30cb271131ea3cc49800d9baf.png

析构函数也顺利运行了。

其实在java中,未做捕获异常操作的代码,编译就会通不过。而php没有编译这步,没人帮你检查,所以自己平时写代码就要注意些,不然有些代码平时运行正常,遇到异常抛出时,因为未捕获就导致整个程序强制退出,那这样的代码还是比较不健壮的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值