Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyjatki - obsluga
snipe
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 5.10.2005
Skąd: Opole/Chorzów

Ostrzeżenie: (0%)
-----


Testuje ostatnio sobie php5 i mam pytanie zwiazane z wyjatkami. Zrobilem cos takiego:

  1. <?
  2. class system
  3. {
  4. function db_connect($server, $user, $password, $dbname)
  5. {
  6. try
  7. {
  8. if(@!mysql_connect($server, $user, $password))
  9. throw new Exception('',1);
  10. if(@!mysql_select_db($dbname))
  11. throw new Exception('',2);
  12.  
  13. }
  14.  
  15. catch(Exception $e)
  16. {
  17. if($e->getCode()==1)
  18. echo 'Nie mozna bylo polaczyc sie z hostem';
  19. if($e->getCode()==2)
  20. echo 'Nie mozna bylo polaczyc sie z baza danych';
  21. }
  22. }
  23. }
  24. $system = &new system;
  25. $system->db_connect('localhost', 'user', 'password', 'baza');
  26. ?>


Jak mozna to lepiej rozwiazac, chodzi mi o obsluge wyjatkow (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Wszystko zalezy jakie to wyjatki i co oznaczaja.
W twoim przypadku wyrzuc wyjatek poza metode.

  1. <?php
  2. $system = &new system;
  3. $system->db_connect('localhost', 'user', 'password', 'baza'); // no i sie nioe udalo polaczyc
  4.  
  5. i skad bedziesz TUTAJ wiedzial czy sie polaczyles?
  6.  
  7. ?>


  1. <?php
  2.  
  3. try
  4. {
  5. $system = &new system;
  6. $system->db_connect('localhost', 'user', 'password', 'baza');
  7. // a tu prowadzisz dalej operacje na bazie danych, query, fetch_* itd.
  8. }
  9. catch ( Exception $e )
  10. {
  11. print( 'cos sie popsulo (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ' . $e->getMessage() );
  12. }
  13.  
  14. ?>


To jest bardzo duze uproszczenie, mozna zagniezdzac bloki try/catch, itd.
Gdzies na forum jest watek o wyjatkach, powinno byc tam wiecej info.
Go to the top of the page
+Quote Post

Posty w temacie
- snipe   Wyjatki - obsluga   10.02.2006, 09:45:05
- - dr_bonzo   Wyrzuc wyjatek poza metode db_connect(), bo gdy ni...   10.02.2006, 11:23:31
- - snipe   czyli z tego wynika ze nie oplaca sie lapac wyjatk...   10.02.2006, 11:56:29
- - dr_bonzo   Wszystko zalezy jakie to wyjatki i co oznaczaja. ...   10.02.2006, 12:04:39
- - snipe   ok, dzieki   10.02.2006, 12:10:56


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 22:36