WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.12.2003, 10:00   #1
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

@Who-T: Danke !!
auf sowas habe ich nicht gedacht - jetzt ist mir der sinn natürlich klar. (ist wieder eins von den dingen, die einem im nachhinein betrachtet dann voll logisch vorkommen).

Hab noch ein kleines Beispielprogramm geschreiben - der Vollständigkeit halber:

Code:
		//
		// Funktion 1 erzeugt eine Exception, die nicht abgefangen wird
		// in diesem Fall wird dann der Code bei Finally durchgeführt und 
		// die Funktion beendet.
		// 
		// Grund: Es kann sein, dass man nicht alle auftretenden Excetions
		//        in der Funktion bearbeiten kann !
		//
		// Die Exception sollte dann jedoch im Hauptprogramm (bzw. der
		// aufrufenden Funktion abgefangen werden.
		//
		static public void funktion1()
		{
			try 
			{
				MessageBox.Show("Try - Funktion 1");
				
				// nach diesem throw (der in der Fu. nicht verarbeitet wird),
				// wird sofort der "finally" Zweig (und nichts sonst)
				// ausgeführt
				throw new NullReferenceException();
			}
			catch(IOException ex) 
			{
				MessageBox.Show("IO-Excpetion caught - Funktion 1"); 
			}
			finally 
			{
				MessageBox.Show("Finally Block - Funktion 1");
			}

			MessageBox.Show("Ende der Funktion 1");
		}


		//
		// In dieser Funktion wird die "Funktino 1" aufgerufen und
		// die Exceptions, die in der Funktion nicht behandlet werden, behandelt
		//
		private void button1_Click(object sender, System.EventArgs e)
		{
			try 
			{
				MessageBox.Show("Try der aufrufenden Funktion");
				funktion1();
			}
			catch (NullReferenceException ex) 
			{
				MessageBox.Show ("NullReferenceException caught - aufrufende Funktion");
			}
			// Hier werden ALLE Exceptions verarbeitet
			catch (Exception ex) 
			{
				MessageBox.Show("Exception caught - aufrufende Funktion");
			}
			finally 
			{
				MessageBox.Show ("Finally - aufrufende Funktion");
			}

			MessageBox.Show ("Ende - aufrufende Funktion");
		}
Ausgabe:
--------
Try der aufrufenden Funktion
Try - Funktion 1
Finally Block - Funktion 1
NullReferenceException caught - aufrufende Funktion
Finally - aufrufende Funktion
Ende - aufrufende Funktion


Danke an alle + schöne, erholsame Feiertage !
-hannes
Biri ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:15 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag