• Nie Znaleziono Wyników

Własna obsługa bł ę dów VB_3.2_Kalkulator_TryCatch

N/A
N/A
Protected

Academic year: 2021

Share "Własna obsługa bł ę dów VB_3.2_Kalkulator_TryCatch"

Copied!
2
0
0

Pełen tekst

(1)

Copyright ©2009 Janusz Bonarowski 1

VB_3.2_Kalkulator_TryCatch

Wykonajmy aplikację pozwalająca dokonywać obliczeń na wartościach wprowadzonych w okna tekstowe, patrz propozycja formularza ma rys. 1. Zabezpieczyć aplikację przed błędnymi danymi. Komunikaty wyświetlać funkcją MsgBox.

Rys. 1. Propozycja formularza

Utworzone zostały dwa przyciski wykonujące dzielenie wartości z txtA i txtB, patrz Listing 1.

Listing 1

Private Sub btnDzielenie1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDzielenie1.Click 'Procedura bez zabezpieczeń

Dim A, B, W As Single

A = Single.Parse(txtA.Text) B = CSng(txtB.Text)

W = A / B

lblW.Text = W.ToString End Sub

Procedura nie posiada zabezpieczeń i przy błędnych danych następuje jej przerwanie pokazujące, że programiście brak umiejętności.

Własna obsługa błędów

Aby zabezpieczyć aplikację przed tego rodzaju potknięciami należy stosować instrukcje

Try...Catch...End Try. Konstrukcja ta jest nastepująca, wiersze numerowane od 1 do 11 na Listingu 2:

Listing 2

Private Sub btnDzielenie2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDzielenie2.Click Dim A, B, W As Single

1 Try

2 A = Single.Parse(txtA.Text) 3 B = CSng(txtB.Text)

4 W = A / B

5 lblW.Text = W.ToString 6 Catch ex As Exception

7 MsgBox(ex.ToString, , "Komunikat ex.ToString") 8 MsgBox(ex.Message, , "Komunikat ex.Message")

9 MsgBox("Proszę poprawić dane", MsgBoxStyle.Critical, _ 10 "Komunikat własny")

11 End Try End Sub

(2)

Copyright ©2009 Janusz Bonarowski 2 Wiersz 1 – Słowo kluczowe Try rozpoczynające konstrukcję.

Wiersz 2 - 5 - Wszystkie instrukcje znajdujące się pomiędzy słowami kluczowymi Try...Catch to kod „chroniony”. Jeśli podczas wykonywania dowolnej z tych instrukcji pojawi się błąd, program nie ulegnie awarii lecz.

Wiersze 6 - 11 - przejdzie do bloku instrukcji pomiędzy słowami kluczowymi Catch – End Try. W bloku tym, na ogół, umieszczamy komunikat o

błędzie, zwykle jeden komunikat. W prezentowanym zadaniu umieszczona tam zbyt wiele komunikatów, lecz dlatego, aby pokazać, że każdy z nich jest nieco inny i programista sam może zdecydować, który pozostawić.

Obiekt ex to Exception czyli wyjątek (tak eufemistycznie określono błąd).

Wiersz 7 - Obiekt ex zawiera bardzo wiele informacji, wyświetlamy te informacje metodą To String.

Wiersz 8,9 - Obiekt ex posiada właściwość Message, który wyświetla krótką, zwięzłą informację. Ponieważ zapis funkcji MsgBox w jednym wierszu jest zbyt szeroki aby go wyświetlić na ekranie – wiersz zostaje programowo złamany i wiersz nr 9 jest kontynuacją wiersza 8.

Wiersz 10 - Całkowicie własna obsługa błędu nie korzystająca z obiektu Exception.

Cytaty

Powiązane dokumenty

„Das interessanteste P rodukt dieser Periode aber sind vielleicht Adam Mickiewicz’s Vorlesungen über slavische Literatur und slavische Zustände, die er in Paris,

А потому можно вычислить % стоимости товаров, привезенных из отдельных мест по отношению ко всей стоимости торговли пу­ тем вычисления

Co więcej zaś materiał nagromadzony przez swoich poprzedników i siebie K u­ chowicz stara się (w większości wypadków z powodzeniem) ocenić i scharaktery­

Z soków tej ziemi wyrośliśmy krw ią i potem nakarmiliśmy j ą W odą i chlebem odpłaciła nam urodą sw oją opętała W serca i pamięć głęboko zapadły

W sferze możności korzystania przez skazanego z jego pod­ miotowego prawa do warunkowego przedterminowego zwolnienia mogą powstać pewne zakłócenia, których

• This approach is being followed for the three NW Mediterranean deltas studied in MEDDELT: Ebro, Rhone and Po. • Using the same conceptual approach and climatic change

Отже, відторгнення Мавки матір’ю Лукаша має не надто переконливу аргументацію, скоріш за все, її нелюбов до Мавки ірраціональна,

The results, which verified by DNS simulations, show that by taking a slip length value based on a constant slip model [8] and combining it within a shear-dependent model, up to