<?php class newException extends Exception { // na potrzeby moich prób druga klasa obsługująca wyjątki private $code2 = 'Brak kodu'; function get() { return $code2; } } require_once('lib/Twig/Autoloader.php'); Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'auto_reload' => true, 'cache' => 'cache')); //tutaj korzystam z TWIGA ale to nie ma nic do rzeczy $template = $twig->loadTemplate('index.html'); //dane do bazy try { $database = @new mysqli(HOST, USER, PASSWORD, DATABASE); if($database->connect_errno) { throw new Exception($database->connect_error, $database->connect_errno); } if(!$database->set_charset("utdf8")) { throw new newException('Błąd wyboru kodowania zapytań!'); } } catch(Exception $error) { } catch(newException $error) { } ?>
Skrypt działa jak natura chciała

catch(Exception $error) { } catch(newException $error) { }
Zauważcie że jak podam złe dane do bazy to pieknie zostanie obsłużony wyjątek, przecież o to chodzi, ale jeśli specjalnie zmienię tryb kodowania żeby sprawdzić czy klasa newException zostanie wywołana do obsługi tego błędu to już niestety nie działa bo zamiast funkcja catch złapać klasę newException to ona łapię klasę Exception

Niby logiczne bo ta klasa dziedziczy po Exception... Jeśli usunę catch z klasą Exception i zostawię samo newException to wszystko pięknie działa! Jest na to jakiś sposób?
P.S Mam nadzieję że zrozumieliście mnie bo trochę pomieszałem
