Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyjatki
AcidBurnt
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 1
Dołączył: 13.04.2003
Skąd: z ławki przed blokiem

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


Witam

catch try itp, probuje tym jakas zawladnac tylko chyba nie za bardzo rozumiem idei (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

powiedzmy mam taki kodziek

  1. <?php
  2. foreach($a as $b){
  3. echo $b;
  4. }
  5. ?>


no i w sumie wiadomo ze $a musi byc tablica inaczej error:

Warning: Invalid argument supplied for foreach() in D:\WWW\nieruchomosci\admin\test.php on line 5

no wiec jak wylapac takiego wyjatka?

musze dac np cos takiego:
  1. <?php
  2. try {
  3. if(!is_array($a))
  4.  throw new Exception('$a musi byc tablica');
  5. else{
  6. foreach($a as $b){
  7. echo $b;
  8. } 
  9. }
  10.  
  11.  
  12. } catch (Exception $e) {
  13.  echo 'Caught exception: ', $e->getMessage(), "n";
  14. }
  15. ?>


przyklad blogu try catch z php.net

tak to trzeba robic czy mozna nie wiem jakaos latwiej ;p
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dyktek
post
Post #2





Grupa: Zarejestrowani
Postów: 240
Pomógł: 0
Dołączył: 18.01.2004
Skąd: rzeszów / kraków

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


a czy wyjątek można zapisać a potem odczytać bez zatrzymywania kodu, np. gdy wystapi jakis błąd który nie jest błędem krytycznym ale zgłaszam wyjątek w momencie gdy on wystąpi kod się zatrzyma jeśli zrobie to tak jak ponizej:

  1. <?php
  2. try {
  3. //cos tam
  4. }
  5. catch(Exception $e){
  6. // $e->getMessage();
  7. }
  8. ?>
Go to the top of the page
+Quote Post
athabus
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Cytat(dyktek @ 7.06.2006, 06:16 ) *
a czy wyjątek można zapisać a potem odczytać bez zatrzymywania kodu, np. gdy wystapi jakis błąd który nie jest błędem krytycznym ale zgłaszam wyjątek w momencie gdy on wystąpi kod się zatrzyma jeśli zrobie to tak jak ponizej:

  1. <?php
  2. try {
  3. //cos tam
  4. }
  5. catch(Exception $e){
  6. // $e->getMessage();
  7. }
  8. ?>


Wyjątek zawsze "zatrzymuje" wykonanie kodu który jest w bloku. Jeśli chcesz kontynuować wykonywanie kodu to musisz po prostu zrobić tak
  1. <?php
  2. try {
  3. //kod który zostanie zatrzymany
  4. }
  5. catch(Exception $e){
  6. // $e->getMessage();
  7. }
  8.  
  9. //kod który ma być wykonany nawet jesli wystapi wyjatek
  10. ?>



Co od rozpoznania czy dany wyjatek jest krytyczny - najlepiej stworzyc sobie klasy pochodne po wyjatku - czyli wlasne wyjatki - wtedy bedziesz wiedzial jaki wyjatek wystapil czyli np tak
  1. <?php
  2. try {
  3. //kod
  4. }
  5. catch (DbException $e)
  6. {
  7. //obsluga wyjatku bazy danych
  8. }
  9. catch (FileException $e)
  10. {
  11. //obsluga wyjatku zwiazanego z plikiem
  12. }
  13. catch(Exception $e){
  14. // obsluga kazdego innego wyjatku
  15. }
  16.  
  17. ?>


Ten post edytował athabus 7.06.2006, 12:15:38
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 05:43