Ga naar inhoud

gcc en try catch


Aanbevolen berichten

Ik had deze vraag ook al in de afdeling programmeren gezet, maar uit ervaring weet ik dat de reacties daar zeer dun gezaaid zijn, daarom hier ook maar even, tgaat tenslotte om linux :wink: hoi, als ik in linux een programma waarin ik fouten afvang met try catch compileer lijkt alles in eerste instantie prima te gaan. Maar als ik het progje dan run, wordt de try catch gewoon genegeerd!. Ligt niet aan de code, want als ik hem met een win32 compiler compile, werkt het wel, Dus met gcc geen foutmeldingen, maar toch niet werken :s . Moet ik tijdens compilen soms een flag meegeven ofzo? plors NB. ik kan voorbeeld code geven als het niet helemaal duidelijk is, u roept maar :smile:
Link naar reactie
jawel, return type for `main' changed to `int' dat was dus de foutmelding, ik zal voor de duidelijkheid ook ff de code posten, van het testprogrammaatje: #include <stdio.h> #include <iostream.h> void main() { int a,b; while (1) { cout << "nnGeef 2 getallen : n"; cin >> a; cin >> b; try { cout << "uitkomst : " << a / b; } catch ( ... ) { } } } als je nu deelt door nul zou het programma gewoon door moeten gaan, maar hij klapt er dus uit, met idd de melding "Floating point exception" grtz
Link naar reactie
Niet dat het er eenvoudiger op wordt, maar ik heb het probleem gevonden. G++ vangt niet standaard de SIGFPE (floating point exception) af. Om dit wel te laten gebeuren moet je een (nieuwe) signal handler voor SIGFPE installeren, die een exception throwt (klinkt interressant) die je later weer kan afvangen. Zie ook het volgende stukje: http://gcc.gnu.org/ml/gcc-help/2002-04/msg00003.html
Link naar reactie
leuk dat je iets gevonden hebt :smile: probleem is dat ik dit progje alleen gebruik om try catch te testen. In werkelijkheid wil ik Exception handling in o.a. een Client/Server applicatie gaan gebruiken en daar werkt het dus ook niet.... vreemde vind ik dus dat er geen compile errors komen, en dat het toch niet werkt :-/ zelf zoek ik ook verder, als ik iets vind post ik het wel even. Ondertussen blijft alle hulp natuurlijk welkom.
Link naar reactie
[quote:92d038a890] Op 27-04-2002 12:56 schreef plors: leuk dat je iets gevonden hebt :smile: probleem is dat ik dit progje alleen gebruik om try catch te testen. In werkelijkheid wil ik Exception handling in o.a. een Client/Server applicatie gaan gebruiken en daar werkt het dus ook niet.... vreemde vind ik dus dat er geen compile errors komen, en dat het toch niet werkt :-/ zelf zoek ik ook verder, als ik iets vind post ik het wel even. Ondertussen blijft alle hulp natuurlijk welkom. [/quote:92d038a890] Het is geen fout, het is zo bedoeld dat een SIGFPE geen exception opwerpt. Als je dit wel wilt moet je een exception handler schrijven die dit wel doet.
Link naar reactie
is daar dan bewust voor gekozen in gcc ofzo? want met de compiler van VC++ werkt het wel goed. misschien kan iemand hier iets mee: ik wil de exceptionhandling dus gaan gebruiken om fouten bij het schrijven/lezen naar en van sockets af te vangen. Dus simpelweg voorkomen dat een servertje eruit knalt, als er iets mis gaat bij de client. Dit werkt dus ook niet, het lijkt wel of het hele try catch blok gewoon genegeerd wordt. Nu zijn er wel andere manieren om fouten af te handelen, maar ik wil gewoon graag ff weten hoe het zit met try catch.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...