Главная /
PHP: ООП и классы /
Был разработан специализированный класс исключений, расширяющий информативность метода getMessage(): <?php class eMyException extends Exception { function getMessage() {return "Исключение: ".$this->message;} } try {throw new eMyException("test");} c
Был разработан специализированный класс исключений, расширяющий информативность метода getMessage():
<?php
class eMyException extends Exception
{
function getMessage()
{return "Исключение: ".$this->message;}
}
try {throw new eMyException("test");}
catch (Exception $e){echo $e->getMessage();}
?>
Ожидалось, что результатом выполнения сценария станет строка "Исключение: тест", однако в процессе выполнения сценария была сгенерирована фатальная ошибка. Из приведенных высказываний укажите высказывание, раскрывающее причину некорректности работы программы:
вопрос
Правильный ответ:
в производном классе не был определен конструктор
класс
Exception не содержит поля message
типом аргумента блока
catch следует указать производный класс, а не родительский
метод
getMessage() переопределить нельзя, т.к. он определен как final Сложность вопроса
59
Сложность курса: PHP: ООП и классы
88
Оценить вопрос
Комментарии:
Аноним
Зачёт всё. Иду пить отмечать экзамен intuit
20 янв 2017
Аноним
Зачёт защитил. Бегу отмечать отмечать зачёт по тестам
17 апр 2016
Другие ответы на вопросы из темы программирование интуит.
- # Абстрактное поле объявляется с помощью ключевого слова
- # Интерфейсы отличаются от абстрактных классов:
- # С целью определить, являются ли параметры некоторой функции опциональными (что указано при ее определении), был разработан код, пример применения которого выглядит следующим образом: <?php define("FUNCTION_NAME","GetSmth");//название тестируемой функции include "func.".FUNCTION_NAME.".php";//файл с ее определением function ReflectFunctionParams($_name) { $refl = new ReflectionFunction($_name); foreach(__1__ as $param_num => $param) { if(__2__) { echo "Параметр №".$param_num." функции "; echo $_name."() является опциональным<br>"; } else { echo "Параметр №".$param_num." функции "; echo $_name."() опциональным не является<br>"; } } } ReflectFunctionParams(FUNCTION_NAME); ?> Среди приведенных ниже пар фрагментов укажите пару, подстановка которой вместо знаков подчеркивания решит поставленную задачу:
- # Сценарий PHP содержит следующий код: <?php class cFoo implements ArrayAccess { protected $Contents = array(); public $OperationCount = 0; public function offsetExists($_offset){ return isset($this->Contents[$_offset]); } public function offsetGet($_offset) { return $this->Contents[$_offset]; } public function offsetSet($_offset,$_value){ $this->OperationCount++; $this->Contents[$_offset] = $_value;} public function offsetUnset($_offset) { $this->OperationCount++; unset($this->Contents[$_offset]); } } $foo = new cFoo; $foo["bar1"] .= "1"; $foo["bar2"] .= "2"; echo $foo->OperationCount; ?> Укажите результат выполнения сценария:
- # Сценарий PHP содержит следующий код: <?php function a(){echo "k "; b(); echo "d ";} function b(){echo "s "; throw new Exception("test"); echo "x ";} echo "s "; try { echo "4 "; a(); echo "j "; } catch (Exception $e) {echo "5 ";} echo "z "; ?> Укажите результат выполнения сценария: