Я вывел класс из Exception
, в основном так:
class MyException extends Exception {
private $_type;
public function type() {
return $this->_type; //line 74
}
public function __toString() {
include "sometemplate.php";
return "";
}
}
Затем я получил от MyException
примерно так:
class SpecialException extends MyException {
private $_type = "superspecial";
}
Если я throw new SpecialException("bla")
из функции, поймал ее и пошел echo $e
, то функция __toString
должна загрузить шаблон, отобразить его, а затем фактически ничего не возвращать в эхо.
Это в основном то, что находится в файле шаблона
<div class="<?php echo $this->type(); ?>class">
<p> <?php echo $this->message; ?> </p>
</div>
по-моему, это определенно должно работать. Тем не менее, я получаю следующую ошибку, когда возникает исключение, и я пытаюсь его отобразить:
Неустранимая ошибка : Не удается получить доступ к частному свойству SpecialException :: $ _ введите C: \ path \ to \ exceptions.php в строке 74
Может кто-нибудь объяснить, почему я нарушаю правила здесь? Я делаю что-то ужасно остроумное с этим кодом? Есть ли гораздо более идиоматический способ справиться с этой ситуацией? Суть переменной $_type
(как показано) заключается в том, что я хочу использовать другой класс div в зависимости от типа перехваченного исключения.