我创建了一个主类,我的所有主要成员激活停用功能都在其中,与它们相关的所有其他事情也都完成了
这个主类(以及一些主要功能)是从各个地方调用的,包括通过 curl
现在让我们在课堂上使用我的激活功能(主要功能之一)
activationFunction($data)
{
//use data to generate total, discount etc
$this->giveAffiliates($total);
if($this->_error){ return $this->_error;}
$this->activateOrder($total,$discount,id);
if($this->_error){ return $this->_error;}
$this->activatePlan($total,$discount,id);
if($this->_error){ return $this->_error;}
//similarily calling various functions which themselves call other functions
}
activatePlan()
{
try{
//call other functions and do necessary stuff for plan A
}
catch(Exception $e)
{
$this->_error.="Error occurred while activating plan A";
}
//for plan B
try{
//call other functions and do necessary stuff for plan B
}
catch(Exception $e)
{
$this->_error.="Error occurred while activating plan B";
}
//for other plans similarily
}
}
现在的问题是if($this->_error){ return $this->_error;}
在每个子函数调用之后。(我总共有大约 35 条类似的行)我需要这个,因为我需要将错误发送给用户并阻止我的代码进一步运行。但这使我的代码很长而且效率不高。如何减少所有这些返回,但在其中一个子功能失败时向用户显示错误并尝试保持我的代码结构不变。我必须从每个主函数调用各种子函数(这是我无法更改的,其中只有一个类和各种函数)并且错误大多必须在每个级别捕获并返回(很少有简单的错误不是返回并允许代码继续运行)。我还必须记住,以后可以添加各种其他功能,它应该足够灵活,以后可以处理所有这些