13. februar 2005 - 23:41Der er
12 kommentarer og 1 løsning
Exception gør ikke som jeg vil have de skal
Hej eksperter
Dette her er første gang jeg leger med exceptions, så det kan godt ske jeg har misforstået noget. Det der går galt for mig er at følgende program bare afslutter i stedet for at udskrive den fejl jeg gerne ville have det til. Problemet opstår både under linux og windows(koden i ser her)
#include <iostream> #include <cstdlib>
using namespace std;
int main () { char myarray[10]; try { for (int n=0; n<=10; n++) { if (n>9) throw "Out of range"; myarray[n]='z'; } } catch (char * str) { cout << "Exception: " << str << endl; } system("pause"); return 0; }
Nogen ideer til hvordan jeg holder programmet i live så jeg får vist min fejlmeddelelse?
Men kompileren mener tilsyneladende at "Out of range" er en const char *, det vil jeg nu ikke mene at det er. Så vidt jeg kan se vil catch (const char * str) både fange const og ikke const char *
Med det niveau jeg koder på opgiver jeg at forstå den helt store sammenhæng og bare glæde mig over det virker. arne_v>> Gider du ikke lægge et svar så jeg kan lukke? bertelbrander >> Mange tak for hjælpen med at opklare mysteriet
C++ slæber rundt på en meget stor bagage. De fleste kompiler fabrikanter forsøger at være bagud kompatible. Selv om C++ standarden er 6 år gammel er der ikke ret mange der lever op til den.
Nye sprog som C# og java er mere rene, for der findes (stort set) kun en standard.
Det virker med const char * med alle de kompilere jeg har ved hånden, ellers må man lave en cast.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.