Wikibooks: C Sharp/Wyjątki

Wyjątki to mechanizm w programowaniu obiektowym pozwalający łatwo wyłapać błędy. Uwalnia to nas od specjalnych zmiennych i wielu instrukcji warunkowych żeby sprawdzać czy nastąpił błąd. Jeśli nasz program nie ma w kodzie obsługi wyjątków to w pewnym sensie obsługuje je za nas framework tzn. wypisze...

Full description

Bibliographic Details
Format: Book
Language:Polish
Subjects:
Raz
Online Access:https://pl.wikibooks.org/wiki/C_Sharp/Wyj%C4%85tki
Description
Summary:Wyjątki to mechanizm w programowaniu obiektowym pozwalający łatwo wyłapać błędy. Uwalnia to nas od specjalnych zmiennych i wielu instrukcji warunkowych żeby sprawdzać czy nastąpił błąd. Jeśli nasz program nie ma w kodzie obsługi wyjątków to w pewnym sensie obsługuje je za nas framework tzn. wypisze komunikat że nastąpił nieobsłużony wyjątek podając jego nazwę np. IndexOutOfRangeException (w tłumaczeniu wyjątek poza zasięgiem indeksu). Do obsługi wyjątków używamy bloku try.catch try { //blok w którym może nastąpić wyjątek } catch(TypWyjątku identyfikatorWyjątku) { //instrukcje do wykonania jeśli wyjątek nastąpi w czasie wykonywania kodu z bloku try } finally { //instrukcje które wykonają się niezależnie od tego czy wyjątek zostanie wyrzucony czy nie //blok finally można pominąć } Oczywiście można umieścić więcej bloków catch jeśli chcemy. Każdy wtedy będzie się zajmował innym typem wyjątków. Należy pamiętać że istnieje hierarchia wyjątków Exception SystemException IndexOutOfRangeException Należy wyjątki obsługiwać od najniższych do najwyższych w hierarchii. Jeśli pomieszamy hierarchię to kompilator zgłosi błąd że ten sam wyjątek chcemy obsłużyć drugi raz. Przykład using System public class main { public static int Main() { int[] tablica = {1 2 3 4 5} try { tablica[5]=6 } catch(IndexOutOfRangeException) { Console.WriteLine( Nastąpiło odwołanie poza tablicę!!! ) } return 0 } } = Wyrzucanie wyjątków = Możemy również sami wyrzucać wyjątki. Robimy to za pomocą instrukcji throw using System class Program { void KupZiemniaki(int ile) { if(ile prognaw C Sharp [[[[./Interfejsy/]]