foreach ($scripts as $script) {
$grader = Grader::getInstance();
$grader->setApplicantId($script['applicant_id'])
->setHandler($x)
->doGrading();
}
平地机类(Singleton类)
public function setHandler($x)
{
$this->validateHandler($x);
}
public function validateHandler($x)
{
$this->handleError("Invalid Handler");
return $this;
}
public function handleError($message)
{
}
如何编写handleError函数,使其停止当前执行意味着返回$this,在validateHandler函数中永远不会到达,将错误消息输出到屏幕,for循环却不会停止运行?
解决方法:
foreach ($scripts as $script) {
try {
$grader = Grader::getInstance();
$grader->setApplicantId($script['applicant_id'])
->setHandler($x)
->doGrading();
}
catch ($e) {
echo 'Grading Failed for applicant '.$script['applicant_id'];
}
}
...
public function handleError($message)
{
throw new Exception('Unable to fruzz the bubar');
}