Ruby on Rails díl.12, Ruby - Výjimky I.

Napsal (») 5. 3. 2007 v kategorii Programování, přečteno: 1399×
obrazky/rubyonrailsn.pngIdeální webhosting pro Ruby on Rails je banan.cz.

Výjimky


Věci ne vždy nepracují tak jak očekáváme, doposud jsme zacházeli s naším kódem jako kdyby všechno mohlo pracovat správně, ale v skutečném světě, prakticky všechny programy generují chyby během použití.

Soubor nebude ve správném formátu, setkáte se s chybami při psaní souboru, vyčerpáte zásobu využitelné paměti a tak dále.

Dobrý programátor bude vždy předvídat takové případy a kódovat svůj program takovým způsobem, že to bude schopný zvládat tyto situace uhlazeně. Namísto tajemné "erorr blaaba 0x2526wd "" zprávy o chybě je lepší když je na obrazovce vytištěno třeba toto "chyba při otevření souboru". Nebo, vám může program poblahopřát "Blahopřání, žádné chyby v kódu.".

Koncept pojmenovaný "výjimky" existuje pro všechny tyto případy a většinou je to elegantní řešení problémů tohoto typu.Výjimka, líbí-li se vám, specifická vlastnost programovacího jazyka je instruované ovládání jistého druhu chyby.

Především, veškeré Ruby výjimky jsou předmětem třídy Exceptions a jeho potomstva.Později uvidíte proč je důležité toto vědět.Měli byste také vědět že každá výjimka má přidruženou zprávu ' význam '. Když si zvolíte definici vašich vlastních výjimek, můžete přidat dodatečnou informaci , která je již dostupná.

Jak říci Ruby že když jsou jisté podmínky splněny, vytvořím si výjimku a jak s ní budu jednat?

Použitím metody raise

raise
raise string
raise thing [ , string [ stack trace ] ]


raise
raise "Neznamy format souboru"
raise GUIException, "chyba GUI", caller


První případ vyvolá výjimku $!.Jestli $! je nula, vytvoří novou RuntimeError výjimku.

Druhá forma vytvoří novou RuntimeError výjimku,která bude mít zprávou daný řetězec.


Třetí forma vytváří výjimku vyvolávající metodu výjimka jako první argument. Zpráva výjimky a backtrace jsou druhý a třetí argument.

Tady je další vzor:

raise "Neznamy format souboru" if extension.nil


Kód výše testuje jestli jistý soubor má přidruženou příponu, jestliže ne vyvolá výjimku se zprávou "Neznámý formát souboru".

Ruby hierarchie výjimek:


Štítky: Ruby on Rails
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedna a pět