![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
Jak zrobic w Ado wlasne wyjatki?
Probowalem tak (w skrocie):
ale przy "throw new" odwoluje sie do konstruktora. -------------------- pozdrawiam :)
|
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
zostawmy moze ten konstruktor
![]() ten kawalek kodu ktory przedstawilem nie dziala. A dowodem chyba jest blad : Kod Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysql error: [: ] in CONNECT ... ktory wskazuje ze wyjatek nie zostal wylapany. Wiec co jest nie tak. -------------------- pozdrawiam :)
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
No przecież nigdzie nie łapiesz wyjątku klasy ADODB_Exception stąd błąd.
Poczytaj po pierwsze o zagadnieniach związanych z propagacją wyjątków. Oraz bardzo dokładnie przeanalizuj przykłady w manualu: http://pl2.php.net/manual/pl/language.exceptions.php |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
ok przejrzalem i zrobilem lapanie przy laczeniu
ale nadal nie lapie ![]() EDIT: zmienilem przy catch na ADODB_Exception i chyba lapie ale w ten sposob nie moge uzyc wlasnego opisu wyjatkow ![]() Ten post edytował piczu 7.06.2006, 16:19:01 -------------------- pozdrawiam :)
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Przy łapaniu wyjątków ważne sa zależności między nimi.
Jeśli łapiesz wykątek klasy głównej Exception to łapiesz ten wyjątek i wyjątki klas pochodnych po tej klasie. Jeśli po klasie AException dziedziczy BException to jak łapiesz BException to łapiesz tylko ją, ale jak łapiesz AException to lapiesz obie. Dlatego u Ciebie przy lapaniu DAOException nie wychwytuje ADODB_Exception. Zawsze powinieneś lapać od szczegółowych do ogólnych.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
wiec nici z wlasnego opsu wyjatku __toString ?
Ten post edytował piczu 7.06.2006, 16:29:29 -------------------- pozdrawiam :)
|
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie. Dlaczego?
Musisz po prostu zadbac o to by zanim zostanie zgłoszony wyjątek klasy ADODB_Exception wyrzucony został wyjątek klasy DAOException. Po prostu w twoim kodzie zanim nastąpi throw new ... gdzieś AdoAD wywala coś swojego i to Ci psuje aplikację. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
ok to juz rozumie, teraz zostaje konstruktor
![]() przy throw new wyrzyca mi Kod Warning: Missing argument 2 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 Warning: Missing argument 3 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 Warning: Missing argument 4 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 Warning: Missing argument 5 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 Warning: Missing argument 6 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 Warning: Missing argument 7 for ADODB_Exception::__construct(), called in dataaccess.class.php on line 115 and defined in adodb-exceptions.inc.php on line 29 i co to maja byc za argumenty ? -------------------- pozdrawiam :)
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jak zbudowałeś ten konstruktor.
Konstruktor klasy ADODB_Exception potrzebuje parametów, których najwidoczniej nie dostał. Jakie? Zajrzyj do definicji tej klasy. P.S. Tak sobie myślę o tej dyskusji i dochodzę do wniosku, że może Ci wygodniej będzie z Creole a nie z AdoDB. Creole jest napisane stricte na PHP5 i ma bardzo ładny obiektowy kod, wykorzystujący wszystkie możliwości obiektowe PHP5. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 0 Dołączył: 4.01.2005 Skąd: piczu.info Ostrzeżenie: (10%) ![]() ![]() |
kontruktor
w zrodle znajduje sie jeszcze funkcja, prawdop sluzaca do wyrzucania wyjatkow, jednak ma ona tyle samo parametrow co konstruktor
Chyba dam sobie z tym spokoj. W sumie AdoDB_lite, bo uzywam wersji odchudzonej, jest mi potrzebne jako alternatywa dla PDO w moim projekcie, ale chce zeby wszystko dzialalo jak nalezy, wiec przegugluje o tym Creole i moze sie przerzuce. Dzieki za wszystko. Ten post edytował piczu 8.06.2006, 19:14:59 -------------------- pozdrawiam :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:52 |