27/09/2002 1 Języki programowania 1 Piotr Górczyński Obsługa błędów.

Slides:



Advertisements
Podobne prezentacje
27/09/ Języki programowania 1 Piotr Górczyński Operatory.
Advertisements

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Język C/C++ Funkcje.
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Programowanie w języku Visual Basic
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
27/09/ Języki programowania 1 Piotr Górczyński Pętle.
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
FUNKCJE INFOMACYJNE KOMÓRKA CZY.ADAR KOMÓRKA CZY.ADAR NR. BŁĘDU CZY.TEKST NR. BŁĘDU CZY.TEKST INFO L INFO L CZY. PUSTA BRAK CZY. PUSTA BRAK CZY. BŁ TYP.
Jan Aleksander Wierzbicki
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
VisualStudio.Net Janusz Górczyński.
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
Obsługa błędów w programach i zapobieganie ich występowaniu.
27/09/ Języki programowania 1 Piotr Górczyński Zmienne.
20/09/ Języki programowania 1 Piotr Górczyński Wstęp.
Projektowanie Aplikacji Komputerowych
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
20/09/ Języki programowania 1 Piotr Górczyński Debugowanie kodu.
27/09/ Języki programowania 1 Piotr Górczyński Instrukcje warunkowego wyboru.
27/09/ Języki programowania 1 Piotr Górczyński Procedury i funkcje.
25/08/ Języki programowania 1 Piotr Górczyński Obiekty i zdarzenia.
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
Procesy poznawcze cd Uwaga.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";"))
Czytanie numerów puktów i ich współrzędnych z mapy.
Temat nr 10: System przerwań
Wykład 2 Wojciech Pieprzyca
Komunikacja z arkuszem. Iteracje. Funkcje.
Metody Matematyczne w Inżynierii Chemicznej Wprowadzenie do laboratorium.
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.
Podstawy programowania
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
Przystawka Zarządzanie dyskami
ASP BAZY. 2.2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika ODBC.
Przerwanie ang. interrupt.
Aplikacje bazodanowe ADO.NET PHP i MySQL
Programowanie baz danych
MICROSOFT Access TWORZENIE MAKR
18/11/ Języki programowania 1 Piotr Górczyński Kontrolki.
ASP BAZY DANYCH. 2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika.
Etapy uruchamiania systemu Pliki konfiguracyjne
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
PL/SQL – dalsza wędrówka
VBA w MS Word Źródła: Steven Roman, Word.Makrodefinicje, Helion 2000
Programowanie strukturalne i obiektowe C++
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Podstawy programowania (4)
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
.NET i Bazy Danych Projekt: Wadim Grasza.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Pętle – instrukcje powtórzeń
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Wyższa Szkoła Bankowa, Poznań, dr inż. mirosław Loręcki
VBA w Excel.
Programowanie Obiektowe – Wykład 6
SQL Server Analysis Services Action!
Visual Basic w programie Microsoft Excel
Zapis prezentacji:

27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów

27/09/ Plan Definicja błędu Obsługa błędów Instrukcja On Error Goto... Przykład On Error Goto dla transakcji Instrukcja On Error Goto 0 Instrukcja On Error Resume Next Resume i Resume Next

27/09/ Błąd Przez błąd (error) rozumiemy zdarzenie wygenerowane przez komputer wtedy, gdy nie może on wykonać zleconej mu operacji. Błędy występują z przyczyn niezależnych od programisty. Każdy błąd jest jednoznacznie identyfikowalny (np. przez numer). Do błędu może być dołączony opis (description). Błędy są generowane przez system operacyjny i aplikacje.

27/09/ Błąd cz. 2 Przykłady sytuacji generujących błąd: odczytanie dyskietki, gdy nie jest ona wsadzona do stacji dyskietek podłączenie się do komputera, który jest wyłączony dzielenie przez zero konwersja wartości do typu, do którego nie może być konwertowana (np do typu data) Błąd powstający przy próbie odczytania nieistniejącego dysku (na przykład dyskietki, która nie jest wsadzona do stacji dysków) ma w systemie Windows 2000 numer 68 (Device Unavailable).

27/09/ Błąd w VB Błąd w VB jest zwracany w postaci obiektu o nazwie Err Obiekt Err ma właściwości (properties): Number – numer błędu Description – opis błędu

27/09/ Obsługa błędów Przez obsługę błędów (error handling) rozumiemy użycie w programie specjalnych instrukcji, które pozwalają programowi w przypadku zdarzenie błędu odpowiednio zareagować. Obsługę błędów należy stosować wszędzie tam, gdzie wykonanie instrukcji może się nie powieść z przyczyn niezależnych od nas. Typowym przykładem błędu które należy obsłużyć jest błąd powstający przy próbie odczytania nieistniejącego dysku (na przykład dyskietki, która nie jest wsadzona do stacji dysków). Reakcją programu powinno być na przykład wyświetlenie okna informującego o tym, że dany dysk jest niedostępny i przerwanie próby odczytania dysku.

27/09/ Instrukcja On Error Goto... Składnia: On Error Goto ObslugaBledu rozkazy [Exit Sub] ObslugaBledu: rozkazy Instrukcja ta powoduje włączenie obsługi błędów. Dla każdego następnego rozkazu w chwili wystąpienia zdarzenia błędu sterowanie zostanie przeniesione do miejsca w tej samej procedurze oznaczonego etykietą ObslugaBledu.

27/09/ Instrukcja On Error Goto... Procedurę obsługi błędów umieszcza się na końcu danej procedury. W przypadku gdy błąd nie wystąpi i nie trzeba uruchamiać procedury obsługi błędu, należy przed nią (etykietą ObslugaBledu) wyjść z procedury. Dlatego często przed procedurą obsługi błędów pojawia się instrukcja Exit Sub.

27/09/ Przykład On Error Goto... Kod programu Private Sub Drive1_Change() On Error GoTo ErrLabel Dir1.Path = Drive1.Drive Exit Sub ErrLabel: MsgBox Err.Number & ": " & Err.Description, vbCritical, "Błąd" End Sub Wykonanie programu bez błędu On Error GoTo ErrLabel Dir1.Path = Drive1.Drive Exit Sub Wykonanie programu z błędem On Error GoTo ErrLabel Dir1.Path = Drive1.Drive //tu wystąpił błąd MsgBox Err.Number & ": " & Err.Description, vbCritical, "Błąd"

27/09/ Przykład On Error Goto dla transakcji Transakcje są podstawowym składnikiem baz danych Cechy transakcji: atomowość – w ramach jednej transakcji wykonują się wszystkie operacje albo żadna spójność – transakcja nie narusza spójności danych izolacja – transakcja nie wie o działaniu innych transakcji trwałość – po zakończeniu transakcji jej skutki są trwałe Mechanizm obsługi błędów VB pozwala doskonale obsłużyć transakcje w bazie dnaych On Error Goto Obsluga Rozpoczynamy transakcje cn.StartTrans Wykonujemy operacje na bazie danych które maja być w jednej transakcji... Zatwierdzamy zmiany cn.CommitTrans Exit Sub Gdyby cos się nie powiodło, wycofujemy zmiany Obsluga: cn. RollbackTrans MsgBox Err.Number & ": " &_ Err.Description, vbCritical, "Błąd"

27/09/ Instrukcja On Error Goto 0 Składnia: On Error Goto ObslugaBledu rozkazy On Error Goto 0 rozkazy [Exit Sub] ObslugaBledu: rozkazy Instrukcja ta powoduje wyłączenie obsługi błędów. Dla każdego następnego rozkazu w chwili wystąpienia zdarzenia błędu pozostanie ono nie obsłużone.

27/09/ Instrukcja On Error Resume Next Składnia: On Error Resume Next rozkazy Instrukcja ta powoduje włączenie obsługi błędów. Dla każdego następnego rozkazu w chwili wystąpienia zdarzenia błędu pozostanie ono zignorowane i zostanie wykonany następny rozkaz.

27/09/ Instrukcja Resume [Next] Składnia: On Error Goto ObslugaBledu rozkazy [Exit Sub] ObslugaBledu: rozkazy Resume [Next] Instrukcja ta powoduje powrót do rozkazu (lub do następnego rozkazu, jeżeli zostanie użyta instrukcja Next) w którym wystąpił błąd.

27/09/ Obsługa błędów cz. 2 Kolejnym zastosowaniem procedury obsługi błędów jest zwalnianie zasobów. W językach Delphi, Visual C++,.NET do zwalniania zasobów służy instrukcja try i finally, która pozwala zdefiniować rozkazy, które muszą być wykonane niezależnie od tego czy wystąpił błąd, czy nie.

27/09/ Przykład 1 Sub Przycisk1_Klikniecie() 'Włączenie obsługi błędów On Error GoTo ObslugaBledow 'Deklaracja zmiennych Dim cn As Connection: Dim rs As Recordset: Dim i As Integer 'Stworzenie obiektów Set cn = New Connection: Set rs = New Recordset 'Otwarcie połączenie poprzez ODBC przez zrodlo danych o nazwie DSNMojaLiga2 cn.Open "DSNMojaLiga2" 'Wykonanie polecenie SQL "Wybierz wszystkei pola z wszytskich rekordow w tabeli Druzyna rs.Open "SELECT * FROM Druzyna", cn 'Przejdz na pierwszy reokrd rs.MoveFirst 'Wstaw zawartosc pola Druz kazdego rekordu do kolejnych komorek i = 1 Do While Not rs.EOF Cells(i, 1).Value = rs.Fields("Druz").Value: i = i + 1: rs.MoveNext Loop 'Zwalnianie zasobów Set rs = Nothing: Set cn = Nothing 'Wyjsce z procedury Exit Sub ObslugaBledow: 'Zwalnianie zasobów Set rs = Nothing: Set cn = Nothing 'Informacja o bledzie MsgBox Err.Number & ": " & Err.Description, vbCritical, "Błąd" End Sub

27/09/ Literatura vb4all.canpol.pl