我的模型中有以下逻辑:
if ( $switch_obj->connect() ) {
if ( $data = $switch_obj->showIntAll() ) {
$switch_obj->disconnect();
return $data;
}
else {
$switch_obj->disconnect();
throw new Exception('Empty Data Set');
}
}
else {
throw new Exception('Connection');
}
这个被调用的 switch_obj 在它的构造函数和析构函数中具有分别递增/递减计数器的逻辑。(保存在一个名为 testclass 的类中)。因此,每次实例化类型为 testclass 的对象时,都会增加一个计数器。然后当被销毁时,它会递减。但是,我刚刚发现了一个我没有处理的场景。
致命错误:在第 215 行的 /var/www/myapp/application/models/test_model.php 中调用未定义的方法 testclass::showIntAll()
很明显,我正在调用一个不存在的方法,我将解决它。但我的问题是:在创建这个错误时,我可以看到计数器已经增加了......但没有减少,因为一旦抛出这个错误,它就永远不会返回到我的类中的析构函数方法。我将如何针对这些类型的场景进行编程?显然,在生产中,我不会因为 testclass 中缺少方法而出错......但如果我在调用 testclass 构造函数时遇到意外错误,然后它会爆炸,我只是想知道最好的方法是什么是处理这个。