Похоже, что вы используете исключения как логические значения, я бы посоветовал избегать этого, поскольку это быстро сбивает с толку, если только вам действительно не нужно содержимое исключения.Посмотрите, имеет ли это смысл для вашего варианта использования (я позволю, это может быть не так).
// returns true if valid, false otherwise
function checkValid(){
try {
// do your validation
return true;
} catch (Exception $e) {
// optional: save the exception in case we want to know about it
$this->last_error = $e;
return false;
}
}
function execute() {
for($i=0 ; $i<count($this->getIDs()); $i++) {
if($this->checkValid()){
$this->updateUsers();
}
// if you want to do something with an error, simply add an else clause
// and handle $this->last_error
}
}
Кроме того, я, очевидно, не знаю ваш код или что именно вы делаете, но циклn
раза и вызов checkValid()
и updateUsers()
без параметров кажется очень плохой практикой.Гораздо лучше, например, перебрать список идентификаторов и проверить каждый идентификатор и пользователя по очереди, что-то вроде этого:
foreach($this->getIDs() as $id){
if($this->checkValid($id)){
$this->updateUser($id);
} else {
// an advantage of this is now we can know exactly which ID failed,
// because we have the $id variable
}
}