Главная /
PHP: ООП и классы /
Был разработан специализированный класс исключений, расширяющий информативность метода getLine(): <?php class eMyException extends Exception { function getLine() {return "Исключение сгенерировано на ".$this->line." строке";} } try {throw new eMyExce
Был разработан специализированный класс исключений, расширяющий информативность метода getLine()
:
<?php
class eMyException extends Exception
{
function getLine()
{return "Исключение сгенерировано на ".$this->line." строке";}
}
try {throw new eMyException("тест");}
catch (Exception $e){echo $e->getLine();}
?>
Ожидалось, что результатом выполнения сценария станет строка "Исключение сгенерировано на 7 строке", однако в процессе выполнения сценария была сгенерирована фатальная ошибка. Из приведенных высказываний укажите высказывание, раскрывающее причину некорректности работы программы:
вопрос
Правильный ответ:
в производном классе не был определен конструктор
класс
Exception
не содержит поля line
типом аргумента блока
catch
следует указать производный класс, а не родительский
метод
getLine()
переопределить нельзя, т.к. он определен как final
Сложность вопроса
21
Сложность курса: PHP: ООП и классы
88
Оценить вопрос
Комментарии:
Аноним
Пишет вам сотрудник деканата! Оперативно сотрите сайт vtone.ru с ответами с интуит. Пожалуйста
19 ноя 2016
Другие ответы на вопросы из темы программирование интуит.
- # Сценарий PHP содержит следующий код: <?php abstract class cBase { protected $Data; function __construct($_Data){$this->Data = $_Data;} function ShowData(); } class cDerivative extends cBase { function ShowData(){return "this is ".$this->Data;} } $foo = new cDerivative(11); echo $foo->ShowData(); ?> Укажите результат выполнения сценария:
- # Файл main.php подключает файлы add1.php и add2.php с помощью директивы require. И add1.php, и add2.php подключают файл base.php (содержащий некоторый набор констант и часто используемых функций) с помощью директивы include. Во время выполнения сценария main.php:
- # Сценарий PHP содержит следующий код: <?php class cFoo { private $Properties = array("bar1" => 123, "bar2" => 1); function __construct ($_bar1, $_bar2) { $this->bar1 = $_bar1; $this->bar2 = $_bar2; } function __set($_name, $_value) {$this->Properties[$_name] = $_value;} function __get($_name) {return $this->Properties[$_name];} } $foo = new cFoo(1,2); $foo->bar1 += 34; $foo->bar2++; echo $foo->bar1," ",$foo->bar2; ?> Укажите результат выполнения сценария:
- # Сценарий 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->Contents[$_offset] = $_value;} public function offsetUnset($_offset) { $this->OperationCount++; unset($this->Contents[$_offset]); } } $foo = new cFoo; $foo["bar1"] = "val1"; $foo["bar2"] .= "val2"; echo $foo->OperationCount; ?> Укажите результат выполнения сценария:
- # Для вывода наиболее полной информации о пойманном исключении был разработан следующий код: <?php try {throw new Exception("тест механизма исключений");} catch (Exception $e){____;} ?> Среди приведенных ниже фрагментов укажите все варианты кода, подстановка которого вместо знаков подчеркивания решит поставленную задачу: