Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyjątki, czyli kiedy je stosujemy?
podgur
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 6.04.2009

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


Witam. Chciałem się dowiedzieć, kiedy NALEŻY stosować wyjątki w OOP? Chodzi mi o konkretne przykłady i jakieś dobre wytłumaczenie.
Wyjątki jak sama nazwa wskazuje, ale np .

Kod
$a=5;
$b=0;

if($a<$5){

...
}

Też mogli byśmy użyć wyjątków? i czy powinno się?

bless
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
podgur
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 6.04.2009

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


zend dziękuje:) Posłucham się i poćwiczę(IMG:style_emoticons/default/smile.gif)

Pozdrawiam

Na podstawie waszych odpowiedzi, napisałem klasę do tworzenia miniatur.
Proszę o ocenę skryptu:) Napiszcie co można poprawić itd.
Za odpowiedzi dziękuje:)
Kod
<?php
//Autor: Podgur

class ImageException extends Exception {
        public function __toString() {

            $ret = 'Powstal blad<br />
                    Komunikat: '.$this->getMessage().'<br />Plik: '.$this->getFile().'<br />Wiersz: '.$this->getLine();
            return $ret;
        }
    }
    
    class ImageClass
    {
        
        public $image;

        
        //konstruktor pobierający obrazek
        function __construct($url)
            {     
                //Sprawdzanie czy istnieje plik graficzny podany w konstruktorze
                if(!file_exists($url))
                    {
                            //W przypadku nie istnienia pliku
                            throw new ImageException('Podany plik nie istnieje');
                        }else{
                                
                                $this->image=$url;

                                }
                
                
                
                }

        public function resize($height,$width,$quality=60)
            {
                //Brak obsługi formatu png i bmp
                //Pobranie nazwy pliku
                $namefile = $this->image;
                //Wycięcie rozszerzenia
                $type = substr(strstr($namefile,'.'),1);
                //Tablica z formatami
                $rozszerzenia=array("jpg","jpeg","gif");
                
                if(!in_array($type,$rozszerzenia))
                {
                    throw new ImageException('Zly format pliku');
                    }
                //Nagłówek
                header("Content-Type: image/$type");
                
                switch($type){
                
                //Rozszerzenie *.jpg/jpeg
                case "jpg":
                $img = imagecreatefromjpeg($this->image);    
                break;
                
                //Rozszerzenie *.gif
                case "gif":
                $img = imagecreatefromgif($this->image);
                break;
                
                }
                
                $mini = imagecreatetruecolor($width,$height);
                
                //Stworzenie miniatury
                imagecopyresized($mini,$img,0,0,0,0,$width,$height,imagesx($img),imagesy($img));          
                
                
                switch($type){
                
                //Rozszerzenie *.jpg/jpeg
                case "jpg":
                imagejpeg($mini, "mini".rand(1,100)."_$namefile", 70);        
                break;
                
                //Rozszerzenie *.gif
                case "gif":
                imagegif($mini, "mini".rand(1,100)."_$namefile", 70);
                break;
                
                }
                
            }
    }

    try
        {
            //wywolanie obiektu klasy. Jako parametr dajemy scieżke, bądź nazwę pliku
            $photo = new ImageClass('a.jpg');
            
            //wywolanie metody resize()
            $photo->resize(1000,1000); //Przyjmuje 3 parametry: wysokosc,szerokosc i jakość miniatury
            }
    
    catch(ImageException $error)
        {
            echo $error;
            }
?>

Go to the top of the page
+Quote Post

Posty w temacie
- podgur   Wyjątki, czyli kiedy je stosujemy?   30.03.2010, 21:23:32
- - zend   [PHP] pobierz, plaintext function getDb() ...   30.03.2010, 21:38:56
- - podgur   No tak, ale czy zamiast Kodfunction getDb(...   30.03.2010, 21:49:52
- - Zyx   Wyjątki nie należą do programowania obiektowego. W...   30.03.2010, 22:17:23
- - podgur   Wiem że nie należy, ale zazwyczaj używa się ich w ...   31.03.2010, 07:22:42
- - nospor   To zrob eksperyment: raz uzywaj zwyklych IF a raz ...   31.03.2010, 07:38:07
- - thek   Jak sama nazwa mówi, wyjątki powinno się stosować ...   31.03.2010, 09:19:32
- - podgur   W przypadku np. połączenia z baza danych i połącze...   31.03.2010, 09:22:58
- - zend   Tak, błąd przy wprowadzaniu danych od użytkownika ...   31.03.2010, 15:38:48
|- - Orzeszekk   Cytat(zend @ 31.03.2010, 15:38:48 ) T...   31.10.2011, 11:37:42
- - podgur   zend dziękuje:) Posłucham się i poćwiczę Pozdrawi...   1.04.2010, 22:18:07
- - Crozin   Po co jakieś ImageException, które jedyne co robi ...   2.04.2010, 00:05:27
- - podgur   Zaraz pozmieniam:) dzięki. Jeżeli ktoś ma jeszcze ...   2.04.2010, 08:40:38
- - mg2   Postanowiłem mój pierwszy post, napisać właśnie w ...   19.02.2011, 23:45:47
- - fifi209   "Standardowo" PDO rzuca wyjątkami z tego...   20.02.2011, 00:20:13
- - darko   Podobnie, jak cała biblioteka standardowa php. htt...   20.02.2011, 00:23:17
- - darko   ~Orzeszekk walidacja danych pochodzących od użytko...   31.10.2011, 11:57:23
- - Orzeszekk   OK, nie rozumiem nadal ja jako autor kodu przewid...   31.10.2011, 14:25:07
- - darko   Cytat(Orzeszekk @ 31.10.2011, 14:25:0...   31.10.2011, 14:52:54
- - Crozin   @darko: Błędne dane pochodzące z żądania HTTP są t...   31.10.2011, 15:27:42
- - Orzeszekk   Darko to ze wyjątki służą do sterowania aplikacją ...   31.10.2011, 15:42:51
- - darko   ~Orzeszekk To, że nie jest to sytuacja wyjątkowa,...   31.10.2011, 16:03:17
|- - Orzeszekk   Cytat(darko @ 31.10.2011, 16:03:17 ) ...   31.10.2011, 21:52:32
|- - darko   Post scriptum Cytat(Orzeszekk @ 31.10.2011, 2...   1.11.2011, 01:50:44
- - Crozin   @darko: A masz jakiś pomysł jak zareagować na sytu...   31.10.2011, 16:17:59
|- - darko   Cytat(Crozin @ 31.10.2011, 16:17:59 )...   31.10.2011, 18:21:25
- - Crozin   CytatDokładnie, dlatego najczęściej obejmuję bloki...   31.10.2011, 20:46:54
- - darko   <PASS> oho ~thek coś pisze   1.11.2011, 01:19:53
- - thek   To może ja nieco dodam od siebie... Pracowałem tro...   1.11.2011, 01:24:03
- - thek   @Crozin: sytuacja z jpg i jego formatem jest troch...   1.11.2011, 02:19:32
- - batman   Pozwolę sobie wtrącić się to tej jakże niezwykle i...   1.11.2011, 02:43:37
- - Crozin   CytatPrzykład? Plik istnieje, dane są ok, użytkown...   1.11.2011, 02:59:56
- - thek   Czym dla mnie się różnią? Wyjątek i błąd to dla mn...   1.11.2011, 14:23:09
- - Orzeszekk   Crozin jako chyba jedyna osoba z dyskutujących zac...   1.11.2011, 14:26:25
- - thek   A co do przykładu z dwoma formami zgłaszania błędó...   1.11.2011, 14:34:19
- - Orzeszekk   Są porównywalne, mozesz kompletnie zastąpić wyjąte...   1.11.2011, 14:42:15
- - Crozin   @thek: Taka osobista uwaga. Staraj się jednak pisa...   1.11.2011, 16:17:28
- - thek   @Orzeszek: Nie widzę problemu by wyjątki były wewn...   1.11.2011, 16:22:40
- - Crozin   [JAVA] pobierz, plaintext catch (SomeException...   1.11.2011, 17:15:41
- - batman   Cytat(thek @ 1.11.2011, 16:22:40 ) Ma...   1.11.2011, 17:44:03
- - thek   @Crozin: to o czym piszesz to ułomność języka, któ...   2.11.2011, 00:29:28
- - batman   CytatJednocześnie jeśli w owym (owych) XML dostani...   2.11.2011, 08:10:50
- - thek   Właśnie dlatego napisałem, nie "wyjatek...   2.11.2011, 09:46:27


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: 30.09.2025 - 21:33