Entwickler-Ecke
C# - Die Sprache - Ausnahmebehandlung
kostonstyle - Mi 13.01.10 10:09
Titel: Ausnahmebehandlung
Hallo miteinander
habe eine Frage zu Ausnahmebehandlung. Habe folgendes programmiert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| try { bool pattern; pattern = handle.file_end(this.txt_data.Text); } catch (InvalidValueException ex) { MessageBox.Show(ex.Message); } |
bei der Auslösung eine InvalidValueException Ausnahme wird hier abgefangen und eine Message ausgegeben. Was ich bei der Sache nicht ganz verstehe, was macht das Programm nach einer Ausnahmebehandlung, fängt er wieder von vorne an?
Gruss kostonstyle
bakachan - Mi 13.01.10 10:32
Nein er läuft einfach weiter durch.
Edit:
Also nach dem Catch( oder finally)-Block gehts weiter nach der Exception.
danielf - Mi 13.01.10 10:37
Hallo,
wenn in deinem try-Block eine Exception geworfen wird fängt sie ein passender catch-Block auf. Passend heißt in dem Fall, dass die Exception oder ein Basistyp der Exception von dem geworfenen Typ ist (z.B. Exception ist die Superklasse welche alle Fälle "auffängt"). Es wird dann der Code im catch-Block ausgeführt. Danach wird der Code nach dem Block ausgeführt.
Mfg Daniel
// Edit:
Wenn die Exception zu keinem passenden catch-Block passt wird sie weiter "geworfen" bis sie am Ende von der Laufzeitumgebungs aufgefangen, das Programm beendet und die Exception ausgegeben wird.
kostonstyle - Fr 15.01.10 16:51
ein Beispiel
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Collections.ObjectModel;
namespace Daten_Copy { public partial class File_extend : Window { Handling_Data verify_ex = new Handling_Data(); public File_extend() { InitializeComponent(); }
private void btn_add_Click(object sender, RoutedEventArgs e) { try { verify_ex.file_end(this.txt_add.Text); this.lstview_extension.Items.Add(this.txt_add.Text); } catch (InvalidValueException ex) { MessageBox.Show(ex.Message, "Fehler"); } }
private void btn_del_Click(object sender, RoutedEventArgs e) { this.lstview_extension.Items.RemoveAt(this.lstview_extension.Items.IndexOf(this.lstview_extension.SelectedItem)); } } } |
Was macht er hier nachden Catch Block? Ich kann einfach nicht nachvollziehen!
Mitmischer 1703 - Fr 15.01.10 16:54
Weiterhüpfen. Er führt den catch-Block aus und macht dann nach der abschließenden Klammer des catch-Blockes weiter - in deinem Fall ist die Funktion dann zu Ende.
kostonstyle - Mo 18.01.10 08:05
Die Funktion ist nun fertig durchlaufen. Was macht er den weiter?
jaenicke - Mo 18.01.10 10:24
Die Oberfläche wird weiter angezeigt und du kannst damit normal weiter arbeiten. Das heißt es werden wieder die entsprechenden Messages behandelt usw.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!