Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
class OutOfStockException extends RuntimeException {}
try {
echo 'start ';
throw new OutOfStockException('need 3');
} catch (RuntimeException $e) {
echo get_class($e), ': ', $e->getMessage(), "\n";
}start OutOfStockException: need 3
- Ждать, что
catch (RuntimeException $e)пропустит дочерний класс:catchпринимает названный класс и каждого его потомка, поэтомуOutOfStockExceptionпойман. - Ждать, что
get_class($e)вернёт класс изcatch: он возвращает класс брошенного объекта, здесьOutOfStockException.
- Зачем объявлять
OutOfStockException, если можно бросить обычныйRuntimeException? - В каком порядке ставить два блока
catch— дляOutOfStockExceptionи дляRuntimeException?