Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyjątki klika pytan
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


az wstyd mi sie przyzbac ale całkowicie nie kapuje po co stosowac w ogole te całe wyjatki a przeczytalem artykulu i z phpedi wszysto kilka razy ale dalej nie wiem. Po co.. mozna urzywac elseif i mamy chyba to samo.

no

  1. <?php
  2. $sPath = './router.php';
  3. try {
  4. if( !file_exists( $sPath ) ) {
  5. throw new Exception( 'plik nie istnieje!' );
  6. }
  7.  
  8. include $sPath;
  9. if( !class_exists( 'Router' ) ) {
  10. throw new Exception( 'Klasa Router nie istnieje!' );
  11. }
  12.  
  13. $Router = new Router();
  14. }
  15. catch( Exception $Ex ) {
  16. echo 'Wystąpiły problemy!'."n";
  17. echo '',$Ex,'';
  18. }
  19. ?>


przeciez mozna to zrobic bez wyjatku prosto i szybko wiec po co wyjatek, nie chodzi tylko o ten przykład.

tak testuje sobie na swojej "pseudo" kodzie i mam takie cos


  1. <?
  2. $a = '453';
  3. try {
  4.  
  5.  
  6.  
  7. if( !is_numeric($a) ) {
  8. throw new Exception( '$a nie jest liczba' );
  9. }
  10.  
  11. if( $a >= '454' ) {
  12. throw new Exception( '$a jest większe lub równe 454' );
  13. }
  14.  
  15.  
  16. }
  17. catch( Exception $Ex ) {
  18. echo 'Wystąpiły problemy!'."n";
  19. echo $Ex;
  20. }
  21. ?>
naprzyklad chcial bym zrobic teraz tak ze jak podam liczbe wieksza niz 454 to $a automatycznie zostanie przypisane do np. 5 ( wtedy powiino nie zwracac bledow ) moze zle mysle. ale no na boga nie kapuje siedze juz testuje od paru godzin.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athabus
post
Post #2





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

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


aczteryhehe w takim przykładzie jak podałeś wyjątki faktycznie mają średni sens. Tu raczej chodzi o coś takiego żę

try
{
operacje na jakiś klasach/obiektach
}
catch (Exception $e)
{
obsługa wyjątków
}


Przy czym wyjątków nie wyrzucasz jawnie w bloku try tylko one są wyrzucane gdzieś w klasach. Koncepcja opiera się o to, że klasa/obiekt informuje że coś poszło nie tak wyrzucając wyjątek a ty w danym fragmencie kodu sam decydujesz co z tym fantem zrobić. Np. Błąd w odczycie bazy danych raz może być krytyczny i spowodować, że nie ma sensu dalej ciągnąć aplikacji tylko wyświetlić stronę błędu, a w innym miejscu ten sam błąd może np. nie być tak istotny i można podjąć działania (w bloku catch), które pozwolą na naprawienie sytuacji 'w locie'. Oczywiście to co tu piszę to bardzo duże uproszczenie. Kiedyś hwao miał bardzo fajny artykuł na ten temat na swoim blogu.

//edit mysz mnie uprzedził :-)

Ten post edytował athabus 15.12.2006, 10:54:41
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 20:56