Здравствуйте! Есть консольное приложение, которое на входе принимает некоторые параметры и выводит результат. Если параметр введён некорректно, то перехватывается ошибка, выводится пользовательское сообщение и завершается работа скрипта через
die() / exit()
, так как дальнейшее его выполнение не имеет смысла.
Код просто для примера:
class App
{
public static function checkEven ($number)
{
try {
if ($number % 2 !== 0) {
throw new Exception("Odd number");
}
return $number . ' even' . PHP_EOL;
} catch (Exception $error) {
print_r($error->getMessage() . PHP_EOL);
die(); // @codeCoverageIgnore
print_r("Too late");
}
}
}
print_r(App::checkEven(9));
При тестировании UNIT-тестами с некорректными входными данными завершается работа приложения вместе с самим тестированием (что не удивительно). Запись с
// @codeCoverageIgnore
не помогла.
Существуют ли другие способы пропустить выполнение
die()
или исключения следует обрабатывать иначе? Если да, то как?