Jestem w trakcie lektury ksiazki traktujacej o PHP5. W trakcie natknalem sie na wzmianke o programowaniu obiektowym (ktorego wczesniej nie stosowalem) no i pojawila sie dygresja o wyjatkach. W zwiazku z tym taki kod:
Kod
<?php
try{
throw new OutOfRangeException();
}
catch(Exception $e){
echo "Blad Exception";
}
catch(OutOfRangeException $e){
echo "Blad OutOfRangeException";
}
//tutaj
?>
try{
throw new OutOfRangeException();
}
catch(Exception $e){
echo "Blad Exception";
}
catch(OutOfRangeException $e){
echo "Blad OutOfRangeException";
}
//tutaj
?>
Pomijajac zla kolejnosc obslugiwania wyjatkow (Exception stoi wyzej w hierarchii niz OutOfRangeException, wiec kolejnosc catch'y powinna byc odwrotna), to nasuwa mi sie pytanie o try...catch (ktorego wczesniej nie stosowalem). Jesli w pierwszym catch porownanie zwraca wartosc true, wykonane zostają instrukcje z nawiasów, to od ktorego miejsca dalej wykona sie kod? Czy wejdzie do kolejnego catcha, czy tez wyjdzie do miejsca, w ktorym umiescilem komentarz
Kod
//tutaj
Bo zasadniczo try...catch pod wzgledem skladniowym przypomina troche switch...case, gdzie po kazdym case nalezalo stosowac break..
Zakladajac wystapienie wyajtku OutOfRangeException obydwa porownania zwroca true...Wiec jak to jest?