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 05.10.2005, 12:22   #1
PredeX
Senior Member
 
Registriert seit: 03.09.2001
Alter: 41
Beiträge: 165


Standard Ursprung von Exceptions eruieren

Hi!

Eigentlich programmier ich hauptsächlich in JAVA, wo ja bei der definition einer klasse bzw. Methode angegeben wird welche exceptions geworfen werden.
Nun in der Arbeit programmier ich aba in VB.Net und möchte herausfinden, welche funktionen/klassen welche exceptions werfen. Kann mir jemand sagen wie ich das herausfind?

Danke schon im Voraus, aja und ich arbeit mit MS VisualStudio 2003
____________________________________
There are 10 types of people, those who understand binary and those who don\'t...

Ask Me No Questions, And I Tell You No Lies!
PredeX ist offline   Mit Zitat antworten
Alt 05.10.2005, 19:30   #2
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

in .net gibt es - im vergleich zu java - keine sogenannten "checked exceptions" - siehe z.B.: http://www.25hoursaday.com/CsharpVsJava.html#checked
es wird daher nie angegeben, welche exception geworfen wird - auch in java können ja aber auch andere exceptions auftreten, als die angegebenen.

Was ist der sinn dahinter, herauszufinden, welche exceptions geworfen werden können?

wenn du eine bestimmte exception explizit behandeln willst, musst du einen catch-block dafür vorsehen.
z.B. catch (TypeCastExecption ex)
alle Exceptions werden gefangen durch: catch (Exception ex) -> muss am schluss stehen.
eigene exceptions sollten von "ApplicationException" abgeleitet werden.

Explizit herauszufinden, welche Exceptions geworfen werden können macht imho. keinen Sinn - das führt ja auch irgendwie das Konzept der Exceptions ad absurdum.

das machst du ja auch in java nicht - da legst du ja fest, um welche exceptions sich deine klasse kümmert - nicht, welche geworfen werden können.

fg
-hannes
Biri ist offline   Mit Zitat antworten
Alt 06.10.2005, 14:41   #3
PredeX
Senior Member
 
Registriert seit: 03.09.2001
Alter: 41
Beiträge: 165


Idee also...

...ich glaub ich habe meine frage eigentlich nicht wirklich sauber formuliert, denn mir ist nachträglich bewusst geworden, dass ich nicht wirklich wissen müsste, wodurch die exception ausgelöst, sondern warum sie ausgelöst wird. Diese Informationen findet man in der MSDN...

Noch ein paar worte zu exceptions...
Zitat:
das machst du ja auch in java nicht - da legst du ja fest, um welche exceptions sich deine klasse kümmert - nicht, welche geworfen werden können.
nicht ganz, denn ich könnte ja beispielsweise schreiben
Code:
try {
    ....
} catch(Exception e) {
  throw new IllegalArgumentException()
}
in diesem fall kümmere ich mich schon auch darum, welche exceptions von meiner klasse geworfen werden... was ich dann auch explicit bei der deklaration bekannt geben könnte...

aba ich gebe dir recht wenn du sagst, dass es nicht sehr viel sinn macht alle möglichen exception die eine klasse od eine ihrer methoden werfen könnte, zu kennen, ich dachte nur ganz automatisch, dass es sich bei jener art von exception in meinem programme um eine ganz bestimmte handeln muss, da ich diese eben nicht kannte (das wiederum rührt daher dass ich nun mal hauptsächlich java programmiere und dort doch einige exception kenne)

danke für deine antwort!
____________________________________
There are 10 types of people, those who understand binary and those who don\'t...

Ask Me No Questions, And I Tell You No Lies!
PredeX ist offline   Mit Zitat antworten
Alt 06.10.2005, 20:45   #4
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

keine ursache - ich programmiere eigentlich sehr wenig bis fast garnix in java, bin daher sicher nicht der spezialist.

ad wodurch die exception ausgelöst wird: eine excetion ist ja wie alles andere auch eine klasse und beinhaltet eine variable, die auf den stack verweist - daraus ist ersichtlich, was passiert ist, bevor die exception aufgetreten ist. (sog. StackTrace)

...k.a. ob das für dich brauchbar ist.

.net verwendet übrigens auch intern einen sogenannten stackwalk, um die rechte eines assemblies zu prüfen.

auch sehr interessant für anwendungsentwicklung unter .net ist die microsoft enterprise library - stellt viele immer wieder benötigte funktionen (konfiguration, MVC-modell, db-zugriff, Exception Handling(!) in wiederverwendbaren blöcken zusammen + ist kostenlos.

fg
-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 00:25 Uhr.


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