Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Błąd działania Exception
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam,

Napisalem sobie moj pierwszy obiektowy programik który posiada 2 pliki :

Pierwszy z nich to klasa :

  1. <?php
  2.  
  3.    class Demo {
  4.        
  5.        private $_name;
  6.        
  7.        public function sayHello() {
  8.            print "Cześć, {$this->getName()}!";
  9.        }
  10.        
  11.        public function getName() {
  12.            return $this->_name;
  13.        }
  14.        
  15.        public function setName($name) {
  16.            if(!is_string($name) || strlen($name) == 0) {
  17.                throw new Exception("Niepoprawna wartość zmiennej name");
  18.            }
  19.            $this->_name = $name;
  20.        }
  21.    }
  22. ?>


A drugi z nich to test owej klasy :

  1. <?php
  2.  
  3.    require_once('class.Demo.php');
  4.    
  5.    $objDemo = new Demo();
  6.    $objDemo->setName('Stefan');
  7.    $objDemo->sayHello();
  8.    
  9.    $objDemo->setName(37); //wygeneruje błąd
  10. ?>


Niestety nie wiem dlaczego nie dziala Exception. Gdy odpalam drugi plik na monitorze pojawia sie tylko :

Cytat
Cześć, Stefan!


Nawet jesli uzyje w pierwszym wywolaniu metody setName liczbę to nie wywala błędu tylko wyswietla sie pusta strona.....
Fifi209
Przy testowaniu wrzuć tak:

Kod
try {
// kod gdzie testujesz klasę
}catch(Exception $e) {
echo $e->getMessage();
}


Tak to jest jak się google nie używa.

@ Co do błędu: nie wyświetla bo masz wyłączoną obsługę pokazywania błędów. Z pewnością dostałbyś komunikat o "niezłapanych" wyjątkach.
Wolfie
A jak ta obsługe przekazywania błędów mozna włączyc ?

Wiec jesli chce wylapac wyjatek to zawsze caly kod musze zamykac w try { } catch ?
guilty82
error_reporting()?
Fifi209
Cytat(Wolfie @ 9.06.2009, 16:32:36 ) *
Wiec jesli chce wylapac wyjatek to zawsze caly kod musze zamykac w try { } catch ?


Tak.
Wolfie
Zastosowalem na poczatku skrypty error_reporting(E_ALL); bez uzycia try {} catch i zaden błąd sie nie pojawił....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.