MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 7 Strukturierte Ausnahmebehandlung (Level 100) Presenter: Daniel Walzenbach Technologieberater.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Abstrakte Klassen.
Ein Beispiel in Java.
Polymorphie (Vielgestaltigkeit)
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Java-AG Ausnahmebehandlung Gerhard Gröger.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
Presenter: Daniel Walzenbach Technologieberater
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB. NET für Einsteiger und Umsteiger Einführung in VB
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 2 Datentypen, Variablen, Namensräume, Ausdrücke und Operatoren (Level 100) Presenter: Daniel.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 5 Noch mehr Klassen und Strukturen (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 9 Zeichenketten, Delegates und Events (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
SQL Server 2005 CLR-Integration
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Grundlagen der Programmierung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Exception-Handling.
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Mittwoch Informatik II, 1. Teil
Programmiervorkurs WS 2014/15 Instanzmethoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Robuste Programme durch Ausnahmebehandlung
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
Microsoft Student Partner
Java Programme nur ein bisschen objektorientiert.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen
Implementieren von Klassen
 Präsentation transkript:

MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 7 Strukturierte Ausnahmebehandlung (Level 100) Presenter: Daniel Walzenbach Technologieberater Microsoft Deutschland GmbH

Verlosung Programmieren lernen mit Visual Basic Bücher werden unter allen Teil- nehmern verlost, die an mindes- tens sieben Webcasts teilnehmen

Visual Studio 2005 Express Kleine Geschwister des Visual Studio 2005 Kostenlos studio/products/express/vb/default.mspx studio/products/express/vb/default.mspx Visual Basic 2005 Express Edition Visual C# 2005 Express Edition Visual C Express Edition Visual Web Developer 2005 Express Edition SQL Server 2005 Express Edition

Agenda Übungsaufgabe Teil 6 Strukturierte Ausnahmebehandlung ÜbungsaufgabeZusammenfassung

Übungsaufgabe, Teil 6 Schreiben Sie die zwei Klassen Amateurspieler und Profispieler Beide Klassen sollen ein Interface ISpieler implementieren Property SpielerName Property Position Methode Torschiessen Schreiben Sie eine Methode welche die Namen, Position und geschossenen Tooooore der Spieler ausgibt

Demonstration #1 demo Übungsaufgabe, Teil 6

Refactoring Übungsaufgabe 6 Refactoring

Agenda Übungsaufgabe Teil 6 Strukturierte Ausnahmebehandlung ÜbungsaufgabeZusammenfassung

Was sind Ausnahmen? Ausnahmen sind unvorhergesehene Ereignisse während der Programmausführung Das Behandeln von Ausnahmen wird als strukturierte Ausnahmenbehandlung bezeichnet Im Fall einer Ausnahme wird ein spezieller Programmteil ausgeführt Es gibt KEINE globale Fehlerbehandlung Fehlerbehandlung bezieht sich immer auf einen (beliebig großen) Codeblock in einer Methode

Wann treten Ausnahmen auf? Ausnahmen treten auf, wenn die CLR einen Befehl NICHT ausführen kann Division durch 0 Ansprechen eines nicht initialisierten Feldes Zugriff auf eine nicht existente Datei … Sub Main() Dim i, j As Integer i = j / 0 Console.WriteLine(j) End Sub

Demonstration #2 demo Ausnahmen in.NET

Behandeln von Ausnahmen Ausnahmen in.NET werden durch Objekte der Klasse Exception dargestellt Es gibt unterschiedliche Arten (Spezialisierungen) von Ausnahmen Alle Ausnahmen erben von System.Exception

Behandeln von Ausnahmen Das Programm und nicht die CLR soll sich um die Ausnahme kümmern Befehle, die zu einer Ausnahme führen könnten, müssen in einem Try…Catch Block eingeschlossen sein Dim i, j As Integer Try i = j / 0 Console.WriteLine("Ergebnis: {0}", j) Catch Console.WriteLine("Division durch 0 ist nicht erlaubt!") End Try

Informationen zu Ausnahmen Was war die Ursache für die Ausnahme? Variable vom Typ der Ausnahme nach Catch deklarieren. Enthält das zuständige Exception Objekt beim Auftreten einer Ausnahme Dim i, j As Integer Try i = j / 0 Console.WriteLine("Ergebnis: {0}", j) Catch ex As Exception Console.WriteLine(ex.Message) End Try

Demonstration #3 demo Informationen zu Ausnahmen abfragen

Informationen zu Ausnahmen Exception ist die allgemeinste Ausnahme Spezifische Ausnahmen für verschiedene Ausnahmebehandlungen Try Dim DateiInhalt As String DateiInhalt = My.Computer.FileSystem.ReadAllText("C:\temp\HelloWorld.txt") Console.WriteLine(DateiInhalt) Catch ex As IO.FileNotFoundException Console.WriteLine("Datei ist nicht vorhanden.") Catch ex As ArgumentException Console.WriteLine("Ungültigen Dateinamen angegeben.") Catch ex As Exception Console.WriteLine("Ein unbekannter Fehler ist aufgetreten.") Console.WriteLine(ex.Message) Console.WriteLine(ex.StackTrace) End Try Reihenfolge beachten Abfrage der Ausnahmen in der Reihenfolge der Spezialisierung. Von speziell nach allgemein. Ansonsten werden die speziellen Fehler nicht behandelt!

Demonstration #4 demo Detailinformationen zu Ausnahmen abfragen

Abschließend Ein Codeblock soll auf jeden Fall (Ausnahme oder nicht) ausgeführt werden Try Dim DateiInhalt As String DateiInhalt = My.Computer.FileSystem.ReadAllText("C:\temp\HelloWorld.txt") Console.WriteLine(DateiInhalt) Catch ex As IO.FileNotFoundException Console.WriteLine("Datei ist nicht vorhanden.") Catch ex As ArgumentException Console.WriteLine("Ungültigen Dateinamen angegeben.") Catch ex As Exception Console.WriteLine("Ein unbekannter Fehler ist aufgetreten.") Console.WriteLine(ex.Message) Console.WriteLine(ex.StackTrace) Finally ' Aufräumarbeiten End Try Der Finally -Block wird immer – unabhängig von dem Auftreten einer Ausnahme – ausgeführt. In diesem Block werden für gewöhnlich Aufräumarbeiten getätigt (Schließen einer Datenbankverbindung, etc.).

Demonstration #5 demoFinally

Event Bubbling Was passiert bei verschachtelten Methoden wenn die innere Methode keine Ausnahmebehandlung implementiert? Sub Main() Try methode1() Catch ex As Exception Console.WriteLine(ex) End Try End Sub Public Sub methode1() methode2() End Sub Public Sub methode2() Dim i, j As Integer i = j / 0 Console.WriteLine("Ergebnis: {0}", j) End Sub Die Ausnahme wandert wie eine Blase im Wasser den Call Stack nach oben bis eine Ausnahmebehandlung gefunden wird. Falls keine Ausnahmebehandlung vorhanden ist greift die Standardbehandlung der CLR.

Demonstration #6 demo Event Bubbling

Ausnahmen werfen Manchmal kann es notwendig sein, eine abgefangene Ausnahme an die aufrufende Methode zurückzuwerfen Ausnahmen können mit dem Befehl Throw geworfen werden Die ursprüngliche Ausnahme kann als Parameter übergeben werden und ist dann als InnerException verfügbar Catch ex As Exception Throw New Exception("Ein unbekannter Fehler ist aufgetreten", ex) Console.WriteLine(ex.InnerException.Message)

Sub main() Try DateiAusgeben("c:\temp\Hello World.txt") Catch ex As Exception Console.WriteLine(ex.Message) Console.WriteLine(ex.InnerException.Message) End Try End Sub Public Sub DateiAusgeben(ByVal Dateiname As String) Try Dim DateiInhalt As String DateiInhalt = My.Computer.FileSystem.ReadAllText(Dateiname) Console.WriteLine(DateiInhalt) Catch ex As IO.FileNotFoundException Throw New Exception("Datei ist nicht vorhanden.", ex) Catch ex As Exception Throw New Exception("Ein unbekannter Fehler ist aufgetreten.", ex) End Try End Sub Ausnahmen werfen

Demonstration #7 demo Ausnahmen werfen und InnerExceptions

Eigene Ausnahmen Eine Klasse soll eigene Fehlermeldungen mit Throw an Programmteile werfen können, welche die Klasse instanziiert haben Eigene Ausnahmeklassen werden von ApplicationException abgeleitet Im Konstruktor muss der Konstruktor der Basisklasse aufgerufen werden

Eigene Ausnahmen Public Class AmateurException Inherits ApplicationException Public Sub New() End Sub Public Sub New(ByVal nachricht As String) MyBase.New() Console.WriteLine(nachricht) End Sub Public Sub New(ByVal nachricht As String, ByVal ex As Exception) MyBase.New(nachricht, ex) End Sub End Class

Demonstration #8 demo Eigene Ausnahmen

Agenda Übungsaufgabe Teil 6 Strukturierte Ausnahmebehandlung ÜbungsaufgabeZusammenfassung

Agenda Übungsaufgabe Teil 6 Strukturierte Ausnahmebehandlung ÜbungsaufgabeZusammenfassung

Zusammenfassung Ausnahmen sind unvorhergesehene Ereignisse während der Programmausführung Ausnahmen treten auf, wenn die CLR einen Befehl NICHT ausführen kann Ausnahmen in.NET werden durch Objekte der Klasse Exception dargestellt Try…Catch…Finally Mit Throw können Ausnahmen geworfen werden Eigene Ausnahmen werden von ApplicationException ableiten

Nächste Termine VB.NET für Einsteiger und Umsteiger, Teil 8 Arrays Montag, :00-17:00 Uhr

Übungsaufgabe Implementieren Sie Fehlerbehandlung für das Programm Kreisinhalt berechnen aus Webcast #2 Schreiben Sie ein Programm welches den Kreisinhalt (A) berechnet. A = πr² Verwenden Sie Console.WriteLine() und/oder Console.Write() und/oder Console.ReadLine() und System.Math.PI Bitte geben Sie den Radius des Kreises in cm ein: 5 Der Kreisinhalt eines Kreises mit Radius 5cm beträgt ca. 78,5cm².

Referenzen & Downloads Objektorientiertes Programmieren in Visual Basic de/library/b86b82w0(VS.80).aspx de/library/b86b82w0(VS.80).aspxClass-Anweisung de/library/wa0hwf23(VS.80).aspx de/library/wa0hwf23(VS.80).aspx Vererbung in Visual Basic de/library/5x4yd9d5(VS.80).aspx de/library/5x4yd9d5(VS.80).aspx Schnittstellen in Visual Basic de/library/28e2e18x(VS.80).aspx de/library/28e2e18x(VS.80).aspx

Referenzen & Downloads Ausnahme- und Fehlerbehandlung in Visual Basic de/library/s6da8809(VS.80).aspx de/library/s6da8809(VS.80).aspx Microsoft Visual Basic Das Entwicklerbuch buchversand.de/mspress/product.asp?cnt=product&id= ms-537&lng=0 buchversand.de/mspress/product.asp?cnt=product&id= ms-537&lng=0 MSDN Solve, Antworten für Entwickler

Questions and Answers Daniel Walzenbach