| Autor |
Nachricht |
ronnie.b
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.12.2006
Beiträge: 24
|
ronnie.b Mitglied
14:53:40 09.02.2010 Titel: |
CException wird nicht geworfen?? |
Zitieren |
Hallo,
hier mal ein Beispielcode:
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | try
{
int a,b,c;
a = 1;
b=1;
b--;
c = a/b
}
catch(CException* e)
{
e->ReportError();
e->Delete();
}
catch(...)
{
MessageBox("Ausnahme");
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | try
{
int a,b,c;
a = 1;
b=1;
b--;
c = a/b
}
catch(CException* e)
{
e->ReportError();
e->Delete();
}
catch(...)
{
MessageBox("Ausnahme");
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | try
{
int a,b,c;
a = 1;
b=1;
b--;
c = a/b
}
catch(CException* e)
{
e->ReportError();
e->Delete();
}
catch(...)
{
MessageBox("Ausnahme");
}
| |
Warum wird hier jetzt nicht der Catch-Block mit der "CException" sondern der Allgemeine (...) aufgerufen??
Versteh ich irgendwie nicht. |
|
|
|
 |
SideWinder
Moderator
Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18195
|
SideWinder Moderator
15:07:54 09.02.2010 Titel: |
|
Zitieren |
|
 |
Martin Richter
Moderator
Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 13147
|
Martin Richter Moderator
15:13:11 09.02.2010 Titel: |
|
Zitieren |
Eine Division durch 0 ist keine CException.
Division durch 0 erzeugt eine SEH Exception!
SEH Exceptions und C++ Exceptions unterscheiden sich gravierend! Siehe MSDN wie immer... |
_________________ Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
|
|
 |
ronnie.b
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.12.2006
Beiträge: 24
|
ronnie.b Mitglied
15:48:26 09.02.2010 Titel: |
|
Zitieren |
Hallo,
erstmal danke für die Antworten.
Ohne das ich jetzt die MSDN durchsuchen muss :-), gibt es auch die Möglichkeit diese Ausnahmen abzufangen bzw. wie krieg ich in meinem Catch(...) raus welche Exception ausgelöst wurde??
Gruß
Ronnie |
|
|
|
 |
Martin Richter
Moderator
Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 13147
|
Martin Richter Moderator
20:32:55 09.02.2010 Titel: |
|
Zitieren |
|
 |
hustbaer
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.10.2006
Beiträge: 12748
|
hustbaer Mitglied
21:41:31 09.02.2010 Titel: |
|
Zitieren |
| ronnie.b schrieb: | bzw. wie krieg ich in meinem Catch(...) raus welche Exception ausgelöst wurde??
|
Naja, das ist schwierig. Dazu müsstest du C++ lernen. *hihi*
Möglichkeit 1: mehrere catch() Handler schreiben für verschiedene Exception-Typen
Möglichkeit 2: RTTI (typeid/type_info) |
_________________ "Let there be Licht..." http://lichttools.sourceforge.net/
Sehr cooles ASCII Spiel (leider nicht von mir): ASCII-Scramble - http://www.roskakori.at/ascii/
Zuletzt bearbeitet von hustbaer am 21:45:08 09.02.2010, insgesamt 1-mal bearbeitet |
|
 |
FFC
Unregistrierter
|
FFC Unregistrierter
05:09:29 10.02.2010 Titel: |
|
Zitieren |
| ronnie.b schrieb: | | gibt es auch die Möglichkeit diese Ausnahmen abzufangen ... ? | Es gibt die Möglichkeit fehlerfreien code zu schreiben - meine bevorzugte Methode. |
|
|
|
 |
ronnie.b
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.12.2006
Beiträge: 24
|
ronnie.b Mitglied
08:04:09 10.02.2010 Titel: |
|
Zitieren |
| FFC schrieb: | | Es gibt die Möglichkeit fehlerfreien code zu schreiben - meine bevorzugte Methode. |
Sehr kompetente Antwort.....
Irgendwie hab ich in diesem Forum immer das Gefühl, dass man hier mit Fragen allen auf die Nerven geht.
@Martin + hustbaer:
Danke für die Antworten und den Link |
Zuletzt bearbeitet von ronnie.b am 08:05:32 10.02.2010, insgesamt 2-mal bearbeitet |
|
 |
Martin Richter
Moderator
Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 13147
|
Martin Richter Moderator
09:04:41 10.02.2010 Titel: |
|
Zitieren |
| ronnie.b schrieb: | | FFC schrieb: | | Es gibt die Möglichkeit fehlerfreien code zu schreiben - meine bevorzugte Methode. |
Sehr kompetente Antwort.....
Irgendwie hab ich in diesem Forum immer das Gefühl, dass man hier mit Fragen allen auf die Nerven geht.
|
Warum! Ich finde die Antwort ist vernünftig... Denn Deine Frage zielte ja auf SEH Exceptions. C++ Exceptions gehören sicherlich zum Design einer Software.
Wenn es um SEH Exceptions geht, wie zum Bespiel auch ungültige Speicherzugriffe etc. dann hat Dein Programm hier wirklich nichts zu machen. Warum auch?
Solche Fehler sind Programmiererfehler wenn Sie auftreten.
In solch einen Fall sollte Dein Programm crashen und netter Weise für den Entwickler einen Dump hinterlassen... |
_________________ Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
|
|
 |
ronnie.b
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.12.2006
Beiträge: 24
|
ronnie.b Mitglied
08:06:19 11.02.2010 Titel: |
|
Zitieren |
Hallo Martin,
das dies ein Programmiererfehler ist erscheint auch mir als Noob klar :-)
War ja auch nur ein Beispiel und ich wollte ja einfach nur wissen was da passiert.
Auf eine Frage zu Antworten "Es gibt die Möglichkeit fehlerfreien code zu schreiben..." ist ja wohl nicht sehr kompetent. Selbs mir ist klar das es diese Möglichkeit gibt. Ich wage aber zu behaupten, dass es keinen fehlerfreien Code gibt wenn man mal "Hello World" außen vor lässt . Oder |
|
|
|
 |