Forum: Compiler & IDEs throw funktioniert nicht richtig


von Yaro (Gast)


Lesenswert?

Hallo Leute,

ich programmiere gerade ein Programm in C++ auf dem PC. Benutze dazu 
eclipse CDT.
In meinem Programm benutze ich exception handling, was aber aufgehört 
hat zu funktionieren. Selbst wenn ich ein einfaches Programm wie:
1
#include <iostream>
2
using namespace std;
3
4
int main(int argc, char *argv[]) {
5
  try {
6
    throw 20;
7
  } catch (int e) {
8
    cout << "An exception occurred. Exception Nr. " << e << '\n';
9
    cout.flush();
10
  }
11
  return 0;
12
}

schreibe, fängt er die exception nicht und ich bekomme auf cerr die 
Ausgabe:
This application has requested the Runtime to terminate it in an unusual 
way.
Please contact the application's support team for more information.

Wenn ich ein neues Projekt erstelle, dann funktioniert es alles 
Einwandfrei. Woran kann es liegen, dass es im einen Projekt funktioniert 
und im anderen nicht?

Gruß, Yaro

von Mark B. (markbrandis)


Lesenswert?

Funktioniert bei mir einwandfrei mit:

1.) IDE:
Eclipse IDE for C/C++ Developers

Version: Kepler Service Release 1
Build id: 20130919-0819

2.) Compiler:
g++ (GCC) 3.4.5 (mingw-vista special r3)

Habe dafür ein neues, leeres "C++ Project" im Workspace angelegt, MinGW 
als Compiler gewählt, eine neue leere Sourcecode-Datei hinzugefügt und 
so weiter.

Die Ausgabe ist:
An exception occurred. Exception Nr. 20

und zwar sowohl innerhalb von Eclipse, als auch von der Kommandozeile 
aus gestartet.

Eventuell mal ohne eclipse probieren, einfach an der Kommandozeile den 
Code kompilieren und ausführen? Wenn das funktioniert: Compiler/Linker 
ist okay, der Fehler muss in Eclipse liegen. Wenn das nicht tut: Dann 
stimmt anscheinend schon etwas mit der Compiler/Linker Installation 
nicht.

Ach so, Du schreibst ja dass es in einem neu angelegten Projekt 
funktioniert. Was genau ist dann das Problem, tritt der Fehler nach 
einer Weile immer wieder auf?

von Klaus W. (mfgkw)


Lesenswert?

Mglrws. bei den Compiler-Optionen Exceptions abgeschaltet?

von (prx) A. K. (prx)


Lesenswert?

gcc test1.cc -lstdc++
=> An exception occurred. Exception Nr. 20
gcc 4.7.2 Linux

Klaus Wachtler schrieb:
> Mglrws. bei den Compiler-Optionen Exceptions abgeschaltet?

=> error: exception handling disabled, use -fexceptions to enable

von Yaro (Gast)


Lesenswert?

-fexceptions hat nicht geholfen, aber die Richtung stimmt!

Hab mit -v alles ausgeben lasen und folgendes gefunden:

Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 
--build=mingw32 --without-pic --enable-shared --enable-static 
--with-gnu-ld --enable-lto --enable-libssp --disable-multilib 
--enable-languages=c,c++,fortran,objc,obj-c++,ada 
--disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry 
--enable-libstdcxx-debug --enable-version-specific-runtime-libs 
--with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld 
--with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= 
--with-system-zlib --with-gnu-as --enable-decimal-float=yes 
--enable-libgomp --enable-threads --with-libiconv-prefix=/mingw32 
--with-libintl-prefix=/mingw

Insbesondere hervorzuheben: --disable-sjlj-exceptions

Weis jemand, wie ich das wegbekomme?

von Mark B. (markbrandis)


Lesenswert?

Könnte es etwas hiermit zu tun haben:

http://www.cplusplus.com/forum/windows/24005/

von Yaro (Gast)


Lesenswert?

Jep! Genau das wars! Vielen dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.