{System

Linki


» Dzieci to nie książeczki do kolorowania. Nie da się wypełnić ich naszymi ulubionymi kolorami.
»
3 + do granic pola eksploatacyjnego Przewietrzanie system Z 4 + + + od granic pola eksploatacyjnego Przewietrzanie...
»
2010-03-01 01:00 14636 11010 Oprogramowanie Systemw Pomiarowych\OSP\KursyNatInst\KursyNatInst\2012_LV Core 3\2012_LV Core 3_Solutions_1\Exercise...
»
2010-02-15 01:00 17262 7324 Oprogramowanie Systemw Pomiarowych\OSP\KursyNatInst\KursyNatInst\2012_LV Core 3\2012_LV Core 3_Exercises\Demonstrations\TLC...
»
Częstotliwość przeprowadzania badań marketingowychBadania ciągłe (stałe)Badania ciągłe (stałe) są prowadzone systematycznie...
»
Drugi element, ktry bdzie mia wpyw na polsk polityk celn, to system preferencji handlowych, udzielanych przez Uni Europejsk krajom Afryki, Karaibw i Pacyfiku...
»
System znany dziś jako Wiedza Tajemna istniał początkowo nic posiadając nazwy, przekazywany z pokolenia na pokolenie przez długie wieki...
»
przykładów, żeby uzasadnić tezę, iż tworzenie modeli różnych systemów oraz ich badanie przy użyciu technik komputerowej symulacji – to ważny...
»
Po trzecie, rola partii maych moe wzrosn wwczas, gdy system partyjny ulega zmianom, co najczciej wie si z modyfikacj (rzadziej rewolucyjnymi"...
»
DOS, PAKUJenter - przesuwa kursor systemowy pomidzy przecznikami a listwopcji, oraz dokonuje zatwierdzenia wybranej opcji,strzaki prawo/lewo -...
»
ły kontrolę nad małymi producentami energii, miało chrapkę naprywatyzowane systemy wodne w Afryce, Ameryce Łacińskiej i naBliskim Wschodzie...

Dzieci to nie książeczki do kolorowania. Nie da się wypełnić ich naszymi ulubionymi kolorami.

Console.WriteLine("Wyjątek przechwycony");
}
Kod wewnątrz nawiasów klamrowych instrukcji try będzie teraz monitorowany na okoliczność wystąpienia wyjątków. Jeśli żaden wyjątek nie wystąpi, instrukcja catch zostanie pominięta, a program będzie kontynuowany. Jeśli zostanie zgłoszony wyjątek, wykonany zostanie kod z instrukcji catch, co w tym przypadku oznacza wypisanie ostrze-
żenia, natomiast wykonanie będzie kontynuowane wraz z kolejną instrukcją, następującą po catch.
Możliwe jest także posiadanie różnych instrukcji catch dla różnych Różne wyjątki
wyjątków i dokładne sprawdzenie, który wyjątek wystąpił. Poniżej znaj-mogą być
duje się kolejny przykład:
obsługiwane
w różny sposób
try
{
x = y/z;
}
catch (System.DivideByZeroException)
{
System.Console.WriteLine("z jest zerem");
}
catch (System.Exception e)
{
System.Console.WriteLine("Wyjątek: {0}", e.Message);
}
W powyższym przypadku, gdy nie wystąpi żaden wyjątek, do x zostanie przypisana wartość y podzielonego przez z, a kod znajdujący się w obu instrukcjach catch zostanie pominięty. Jeśli jednak z będzie zerem, wykonana zostanie pierwsza instrukcja catch, która wydrukuje
108
Języki .NET
odpowiedni komunikat. Wykonanie pominie wtedy kolejną instrukcję catch i przejdzie do kodu, który następuje po bloku try/catch. Jeśli wystąpi jakikolwiek inny wyjątek, wykonana zostanie druga instrukcja catch. Instrukcja ta deklaruje obiekt e typu System.Exception, a na-stępnie odwołuje się do właściwości Message tego obiektu w celu uzy-skania możliwego do wydrukowania łańcucha znaków, wskazującego, jaki wyjątek wystąpił.
Możliwe jest
Skoro języki oparte na CLR, takie jak C#, w spójny sposób wykorzy-definiowanie
stują wyjątki do radzenia sobie z błędami, dlaczego nie zdefiniować własnych
własnych wyjątków do obsługi błędów? Można to uczynić dzięki zde-wyjątków
finiowaniu klasy dziedziczącej po System.Exception, a następnie wykorzystaniu instrukcji throw w celu zgłoszenia własnego wyjątku. Takie wyjątki mogą być przechwytywane w blokach try/catch, tak samo jak wyjątki zdefiniowane przez system.
Choć nie jest to tutaj pokazane, możliwe jest także zakończenie bloku try/catch instrukcją finally. Kod w tej instrukcji zostaje wykonany bez względu na wystąpienie wyjątku. Opcja ta jest przydatna, gdy potrzebny jest jakiś rodzaj końcowego uporządkowania bez względu na to, co się dzieje.
Używanie atrybutów
Program w C#
Po skompilowaniu każdy typ C# posiada powiązane z nim metadane, może zawierać
przechowywane w tym samym pliku. Większość metadanych opisuje atrybuty
sam typ. Jednak, jak pokazano to w poprzednim rozdziale, metadane mogą także zawierać atrybuty określane dla tego typu. Biorąc pod uwagę fakt, iż CLR zapewnia sposób przechowywania atrybutów, C#
musi posiadać jakąś metodę definiowania atrybutów oraz ich wartości.
Jak opisano to w dalszej części książki, atrybuty są szeroko wykorzystywane przez bibliotekę klas .NET Framework. Mogą być stosowane do klas, interfejsów, struktur, metod, pól, parametrów i innych. Możliwe jest nawet określenie atrybutów, które będą stosowane do całego pakietu.
Załóżmy na przykład, że zaprezentowana wcześniej metoda Factorial została zadeklarowana wraz z odnoszącym się do niej atrybutem WebMethod. Zakładając, że zastosuje się odpowiednie dyrektywy using w celu zidentyfikowania właściwej przestrzeni nazw dla tego atrybutu, deklaracja w C# mogłaby wyglądać następująco:
[WebMethod] public int Factorial(int f) {...}
C#
109
Atrybut ten jest wykorzystywany przez ASP.NET — część biblioteki klas .NET Framework — do wskazania, że metoda ta powinna być udostępniona jako usługa sieciowa możliwa do wywołania przez SOAP
(więcej na temat wykorzystywania tego atrybutu znajduje się w rozdziale 5.). Podobnie, załączenie atrybutu:
[assembly:AssemblyCompanyAttribute("QwickBank")]
w pliku C# ustawi wartość atrybutu używanego w całym pakiecie, przechowywanego w jego manifeście i zawierającego nazwę firmy, która utworzyła pakiet. Przykład ten pokazuje także sposób użycia parametrów w atrybutach, pozwalający użytkownikowi na określenie konkretnych wartości atrybutu.
Programiści mogą także definiować swoje własne atrybuty. Być może Możliwe
przyda się na przykład zdefiniowanie atrybutu, który będzie mógł być jest również
wykorzystywany do identyfikacji daty, kiedy dany typ C# był modyfi-zdefiniowanie
kowany. By to uczynić, można zdefiniować klasę, która dziedziczy po własnych
atrybutów

Powered by MyScript