Kod
"Fatal error: Uncaught exception 'Exception' with message 'Nie można odczytać sesji' in /usr/local/apache2/htdocs/simplog/biblioteki/model/sesje.php:25 Stack trace: #0 /usr/local/apache2/htdocs/simplog/biblioteki/model/sesje.php(25): sesje::odczytaj() #1 /usr/local/apache2/htdocs/simplog/index.php(20): sesje->odczytaj('tak') #2 {main} thrown in /usr/local/apache2/htdocs/simplog/biblioteki/model/sesje.php on line 25"
. Nie przechwycony wyjątek...Oto plik sesje (kawałek):
<?php class sesje { function __construct () { throw new Exception ('Nie można zainicjować sesji'); } } function nowa ($nazwa, $wartosc) { if (!$_SESSION[$nazwa] = $wartosc) { throw new Exception ('Nie można utworzyć sesji'); } } function zmien ($nazwa, $wartosc) { if (!$_SESSION[$nazwa] = $wartosc) { throw new Exception ('Nie można zmienić sesji'); } } function odczytaj ($nazwa) { return $_SESSION[$nazwa]; } else { throw new Exception ('Nie można odczytać sesji'); } } function usun ($nazwa) { } } ?>
A to klasa model:
<?php class model { public $wynik; public $bds; public $sesje; $this->bds = $bd; $this->sesje = $sesje; } function wykonaj ($metoda) { try { $this->wynik = $metoda; } catch (Exception $e) { } return $this->wynik; } } ?>
No i wywołanie:
<?php $model -> wykonaj ($model -> sesje -> nowa ('tak', 'nie')); $tak = $model -> wykonaj ($model -> sesje -> odczytaj ('tak')); ?>
Czemu nie łapie wyjątku?
Dzięki za odpowiedzi!
PS. Skrypt już działa - była mała literówka. Ale znów jeśli zmienię nazwę zmiennej, mamy w pliku sesje zmienną "$naszwa" zamiast "$nazwa" to znów nie przechwyca rzuconego wyjatku....