Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C]Gestire le eccezioni

    Come titolo, come si gestiscono le eccezioni?
    Ho provato con try e catch ma non riesco a farli funzionare


    :: Do what you have to do!!! :: ILMe
    www.overx.org
    My Forum

  2. #2
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    562
    if(!(outStream = fopen("C:\PROVE\PIPPO","wt")))
    fprintf(stderr,"Errore nell'apertura del file.\n");


    .... ecc ....

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    try catch sono in C++ non in C

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    Tanto i due linguaggi si possono mischiare, no?
    :: Do what you have to do!!! :: ILMe
    www.overx.org
    My Forum

  5. #5
    Originariamente inviato da web@web
    if(!(outStream = fopen("C:\PROVE\PIPPO","wt")))
    fprintf(stderr,"Errore nell'apertura del file.\n");


    .... ecc ....

    Che voul dire? Forse non mi sono spiegato bene.

    Io intendo dire:
    se al posto di un intero, inserisco un char, il programma va in loop, quindi come faccio a gestire questo problema?

    :: Do what you have to do!!! :: ILMe
    www.overx.org
    My Forum

  6. #6
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da Dunix
    Tanto i due linguaggi si possono mischiare, no?
    Eh?
    Ma proprio per nulla... Moltissimo codice C++ non lo puoi usare in programmi in C, e viceversa il C++ non sopporta qualcosa che non da nemmeno origini Warning nel C, questo sempre che non usi l'extern C {}...

    Tutto cio' che riguarda le eccezioni esiste solo in C++, nel C non c'e'.


    Riguardo a come si gestiscono le eccezioni...
    codice:
    try {
    	/* esegui del codice, richiami delle funziuoni etc */
    } catch ( tipo e ) { /* tipo = il tipo d'errore */
    	/* se si finisce qui si e' verificato l'errore... Tale errore e' indicato dalla var e */
    }
    Quando una funzione o un operatore commettono un errore ritornano una variabile... Nell'esempio lanciano una variabile di tipo "tipo"... Possono lanciare anche piu' variabili e di tipo diverso, in questo caso devi usare piu' catch (se vuoi gestirle tutte):
    codice:
    try {
    	/* esegui del codice, richiami delle funziuoni etc */
    } catch ( tipo e ) { /* tipo = il tipo d'errore */
    	/* se si finisce qui si e' verificato l'errore... Tale errore e' indicato dalla var e */
    } catch ( tipo2 e ) { /* tipo2 = il tipo d'errore */
    	/* se si finisce qui si e' verificato l'errore... Tale errore e' indicato dalla var e */
    }

    Se vuoi lanciare un'eccezione puoi farlo cosi':
    codice:
    throw variabile;
    Se non gestisci un'eccezione il programma termina.


    Eccoti un esempio piu' completo:
    codice:
    try {
    	char *x = new char [1000000000];
    } catch ( bad_alloc e ) {
    	printf ( "Durante l'allocazione si e' verificato un errore.\n" );
    }


    Spero di aver detto tutto giusto ancora conosco pochissimo il C++

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.