Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> try - catch i kontunuowanie
blawat
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 17.03.2006

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


kod:

  1. try {
  2. $db->insert('tab1', $data1);
  3. $db->insert('tab2', $data2);
  4. $db->insert('tab3', $data3);
  5. $db->insert('tab4', $data4);
  6. $db->insert('tab5', $data5);
  7. ...
  8. ...
  9. } catch (dbException $exc) {
  10. echo $exc->getMessage();
  11. }


zalozenia: odczytuje dane z jednej gigantycznej tabeli i po jakims tam parsowaniu zapisuje je do powiedzmy 100 innych tabeli, kazda insert moze rzucic wyjatek, przy czym chcialbym aby zostala wyswietlona tylko informacje ze dane zapytanie nie przeszlo i caly kod byl kontynuowany dalej...

klu sprawy: chce uniknac pakowania kazdego inserta w osobny try - catch (IMG:style_emoticons/default/smile.gif) da rade? jakos tak ze rzuci bledem cath go wylapie i w magiczny sposob wroci kontynuowac dalej...?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Magicznym sposobem, o który pytasz, jest właśnie opakowywanie każdego z zapytań blokiem try...catch. A jak nie chcesz mieć mnóstwa kodu, opakuj to sobie w jakąś funkcję, metodę czy co tam masz i po kłopocie:

  1. function insertExt($db, $foo, $bar)
  2. {
  3. try
  4. {
  5. $db->insert($foo, $bar);
  6. }
  7. catch(Exception $e)
  8. {
  9. ...
  10. }
  11. } // end insertExt();
  12.  
  13. insertExt($db, 'item1', 'tralala');
  14. insertExt($db, 'item2', 'tralala');
  15. insertExt($db, 'item3', 'tralala');
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 08:15