ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
578
578
EMPFEHLEN
-
Hallo,
ich kenne folgendes von Java: Wenn man dort eine Methode mit throws Exception deklariert, muss die Exception bei Aufruf dieser Method aufgefangen werden.
Warum ist das in C# anders?
Wie gebe ich bei einer Methode an, was für Exceptions sie werfen kann?
Gruss,
MD
-
Du könntest ruhig die Suchfunktiuon benutzen!
Thread über Exceptions
MfG cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
den Thread habe ich schon gelesen.
Wo steht dort, wie man festlegt, dasss eine Exception aufgefangen werden muss?
MD
-
Das ist in C#, wie auch in Visual Basic nicht nötig/möglich. Entweder CLR order Compiler übernehmen das für dich. Du musst dich nur ums Exception Handling kümmern.
Du kannst über die XML-Dokumentation angeben, ob die Methode Exceptions werfen kann, aber es gibt keine Möglichkeit ein Handling zu "erzwingen". Wird eine Exception in der nächsthöheren Funktion nicht behandelt, wird sie weitergereicht, bis sie schliesslich die CLR erreicht und diese sich daran macht, den Fehler anzuzeigen und das Programm ev. zu beenden.Zu jedem Problem gibt es mindestens eine Lösung.
Zu jeder Lösung gibt es mindestens eine bessere Lösung
-
04.01.05 17:20 #5
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Java = checked Exceptions & unchecked Exceptions
C# = nur unchecked ExceptionsErst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
In der Übergeordneten Instanz kannst Du natülich auch das alles wieder abfangenCode :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
try{ // Stell Dir vor Du hast harausgefunden das Irgendwas NULL ist. throw new ArgumentNullException("m_Obj"); // null Refenz // Stell Dir vor Du hast harausgefunden das irgend ein Array zu kurz ist. throw new IndexOutOfRangeException("m_ObjAry"); // } catch ( ArgumentNullException ex ){ // Hier kannst Du entscheiden was Du jetzt für eine Exception weiterreichst // Bsp.: throw new ArgumentException(string .Format("Der Parameter {0} darf nicht NULL sein!",ex.ParamName)); } catch ( InedOutOfRangeException ex ){ // Stell Dir vor an dieser Stelle das Programm geschlossen werden sollte. // Bsp.: throw new ApplicationException(string .Format("Der Parameter {0} darf nicht weniger als 5. Stallen haben!",ex.Message)); } catch ( Exception ){ // Hier passiert was Unvorhergesehenes } finally{ }
und Beispielsweise Meldungen an den User ausgeben.
MfG cosmoGeändert von Christian Kusmanow (04.01.05 um 17:37 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
04.01.05 17:40 #7
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Das ist bekannt aber die Frage geht um "checked exceptions"
Zitat von cosmochaosmaker
siehe:
Und dort gibt es keine Entsprechung unter C#Wo steht dort, wie man festlegt, dasss eine Exception aufgefangen werden muss?Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
Du weisst das ich ne NULL in Java bin.

Was würde das für einen Nutzen bringen? Würde es nicht weitere Exceptions mit sich nachziehen?
Kannst mir das jamand Erklären?
MfG cosmoGeändert von Christian Kusmanow (04.01.05 um 17:47 Uhr)
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
04.01.05 17:53 #9
- Registriert seit
- Mar 2001
- Ort
- München
- Beiträge
- 4.785
Checked Exception zwingen den Benutzer einer Biblothek sich darum zu kümmern
Zitat von cosmochaosmaker
wie er mit Ausnahmen umgeht.
Beispiel ein Datenbank Klasse, welche natürlich SQLException werfen kann, wenn z.b
der SQL Server nicht erreichbar ist.
Definiere ich das diese Methode eine SQLException wirft dann muss sich jeder der meine
Klasse nutzt Gedanken machen wie er mit diesem Umstand umgeht.
Bei einer Datenbank Klasse ist es zwar vom Namen her ersichtlich das hier Datenbank Operationen durchgeführt werden.
Deshalb nehmen wir mal ein etwas abstrakeres Beispiel.
Eine Klasse eines CMS das einen Links herausgibt.
Innerhalb dieser Klasse wird auch rekursiev ein Verzeichniss durchsucht um vorhandene Dateien zu behandeln.
Das hier eine Fileoperation durchgeführt wird ist durch die Klassenbezeichnung MenuOut nicht erkennbar. Die Methode getMenus() aber wirft eine IOException, weshalb der Programmierer gezwungen wird daran zu denken das hier Dinge schief gehen können.
Habe ich eine Methode die eine bestimmte Exception zwar werfen könnte aber dies meist recht unwahrscheinlich ist und nur in Ausnahmefälle auftritt dann leite ich meine Exception von RuntimeException ab, und sie kann auch abgefangen werden, muss es aber nicht.
Sprich es ist eine Designentscheidung, um was für eine Exception es sich handelt, und wie und ob sie behandelt werden muss.
Nein wieso sollte es?
Zitat von cosmochaosmaker
Du muss keine Exception weiter nach oben reichen. Du kannst genau das selbe wie mit einer unchecked Exception machen (wie Java-RuntimeException oder eben C#) sie ignorieren.
Nur musst du dies bei checked Exception explizit machen.
try { Menu[] menus = MenuOut.getMenues() } catch(IOException e) { // mir egal }Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
-
Dadurch kannst Du sichergehen, dass Nutzer einer Methode sich mit dem Exception dieser Methode befassen. Die Exception kann dann immer noch weiter geworfen werden, aber das steht dann explizit im Code.
MD
-
das war jemand schneller und ausführlicher.
-
Quasi ein Mekmal was angibt ob in der Klasse/Methode was passieren kann?
Implizit heisst also: Die Exception wird in der Klasse/Methode behandelt?
und Explizit heisst: Das man die Exception selber behandelt?
Wie jetzt? Ihr müsst nicht anworten wenn ichs verstanden hab.
( Wenn der Alexander das jetzt ließt, haut der uns bestimmt eine drauf.
Vollkommen NET OT
LOL)
Danke für die ausfühliche Erklärung Christian! Du bist in Ordnung. Und Sorry...
Ich ärger mich jetzt aber trotzdem nicht weil es das in c# nicht gibt.
Ne,Spaß!
Gruss cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Wen es jemand interessiert: Why doesn't C# have exception specifications?
MfG cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
Ähnliche Themen
-
Exceptions
Von schiese im Forum Java GrundlagenAntworten: 5Letzter Beitrag: 24.08.10, 17:50 -
Exceptions in eigener JAVA-Klassenbibliothek
Von RalU im Forum JavaAntworten: 4Letzter Beitrag: 17.07.10, 15:19 -
Exceptions
Von lernen.2007 im Forum JavaAntworten: 1Letzter Beitrag: 14.06.06, 13:17 -
[Java/Exceptions] Exceptionstruktur
Von TommyMo im Forum JavaAntworten: 9Letzter Beitrag: 21.12.05, 09:46 -
Exceptions
Von PPhilipp im Forum JavaAntworten: 1Letzter Beitrag: 07.12.03, 20:17





Zitieren
Login





