BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Exception Handling » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Exception Handling
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
hants hants ist männlich
deine mutter


Dabei seit: 01.02.2002
Beiträge: 79

Exception Handling       Zum Anfang der Seite springen

servuz,

also ich hab jetzt mal in c++ versucht exceptions abzufangen, damit das programm nicht abstürzt.

hier der code

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
#include <iostream.h>

int main()
{
    
    try {
        int a=2;
            a = a/0; 
    }
    
    catch(...) {  
        printf ("fehlor");
    }

    system("pause");
    return 0;
}



die frage: wo liegt der fehler? wieso wird das programm beendet.
wegen dem catch sollte doch zumindest "fehlor" ausgegeben werden o_O


thx, hants

__________________
grandmaster S: rechtschreibfehler können jedem passieren... (außer lx)
21.08.2004 18:46 hants ist offline E-Mail an hants senden Beiträge von hants suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

http://tutorial.schornboeck.net/exceptions.htm

^Da stehts wies geht.
Und wenn du C++ machst, benutz bitte cout für die ausgabe...

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
21.08.2004 20:16 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

also bei mir funktionierts... zumindest wenn man das mit system("pause"); durch irgendwas anderes ersetzt was lange genug wartet Augenzwinkern ansonsten kannst du dein programm aus der konsole aus starten - dann siehst du auch die meldungen... es kann ja sein dass bei dir die konsole einfach nicht lange genug stehn bleibt dass du die meldung lesen kannst. Ich hab das "system" in diesem fall durch einen scanf ersetzt, du kannst auch getchar nutzen... aber eigentlich falls C++ dann auch konsequent cin und cout für ein/ausgabe.

Edit: devil81 war wieder mal schneller... kann auch daran liegen dass ich erst meinen C++ compiler suchen muss großes Grinsen

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von CDW: 21.08.2004 20:19.

21.08.2004 20:16 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
hants hants ist männlich
deine mutter


Dabei seit: 01.02.2002
Beiträge: 79

Themenstarter Thema begonnen von hants
      Zum Anfang der Seite springen

servuz,

was macht das fürn unterschied, wenn ich cin und cout verwende?
erkennt ihr meinen code dann leichter als c++? Augenzwinkern

thx, hants

__________________
grandmaster S: rechtschreibfehler können jedem passieren... (außer lx)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von hants: 21.08.2004 23:23.

21.08.2004 20:31 hants ist offline E-Mail an hants senden Beiträge von hants suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von hants
servuz,

was macht das fürn unterschied, wenn ich cin unc cout verwende?
erkennt ihr meinen code dann leichter als c++? Augenzwinkern

thx, hants

für was includierst du dann sonst die iostream ?
Und wenn C++, dann richtig.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
21.08.2004 20:38 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
hants hants ist männlich
deine mutter


Dabei seit: 01.02.2002
Beiträge: 79

Themenstarter Thema begonnen von hants
      Zum Anfang der Seite springen

servuz,

die anweisungen im catch block werden bei mir nur ausgeführt, wenn ich vor der division durch null etwas throw. o_O
wenn ich jetzt

int a = 0;
throw 1;
a = 3/a;

schreibe - dann geht das ganze...
sollte der code nicht auch ohne throw funktionieren ??
mein compiler ist der mingw port von gcc.

und die iostream hab ich included, weil ich davor cout benutzt hab^^

thx, hants


roofl

also das problem ist nicht der code wie von euch schon bemerkt - sondern (wer hätts gedacht) der compiler^^

also mit borland gehts, mit digital mars gehts, mit gcc gehts nicht o_O

kennt einer ne variante, die mit allen compilern funktioniert??

__________________
grandmaster S: rechtschreibfehler können jedem passieren... (außer lx)

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von hants: 21.08.2004 23:22.

21.08.2004 22:20 hants ist offline E-Mail an hants senden Beiträge von hants suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Exception Handling

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH