Gestione delle eccezioni in C
Implementi strategie solide di gestione degli errori senza un meccanismo integrato per le eccezioni.
Gestione delle eccezioni in C è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 3 lezioni in totale.
Introduzione alla gestione delle eccezioni
Gestione delle eccezioni in C
A differenza di linguaggi come C++ e Java, C non dispone di un meccanismo integrato per la gestione delle eccezioni.
In questa lezione imparerà:
- Come gestire gli errori utilizzando i valori restituiti.
- Come utilizzare
setjmpelongjmpper la gestione delle eccezioni. - Come utilizzare
errnoper gestire gli errori di sistema.

Gestire gli errori con i valori restituiti
Gestire gli errori con i valori restituiti
Il modo più semplice per gestire gli errori in C consiste nell'utilizzare i valori restituiti.
Esempio:
int divide(int a, int b) {
if (b == 0) return -1; // Error code
return a / b;
}
Il chiamante controlla il valore restituito per verificare la presenza di errori.
Esempio: gestione degli errori con i valori restituiti
Esempio: gestione degli errori con i valori restituiti
Questo programma verifica la divisione per zero utilizzando i valori restituiti.
#include <stdio.h>
int divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero!\n");
return -1;
}
return a / b;
}
int main() {
int result = divide(10, 0);
if (result != -1) {
printf("Result: %d\n", result);
}
return 0;
}Utilizzare setjmp e longjmp per la gestione degli errori
Utilizzare setjmp e longjmp per la gestione degli errori
Le funzioni setjmp e longjmp consentono salti non locali, simulando la gestione delle eccezioni.
Passaggi:
- Utilizzi
setjmp()per contrassegnare un punto di ripristino. - Utilizzi
longjmp()per tornare a quel punto quando si verifica un errore.
Esempio: utilizzare setjmp e longjmp
Esempio: utilizzare setjmp e longjmp
Questo programma utilizza setjmp e longjmp per la gestione degli errori.
#include <stdio.h>
#include <setjmp.h>
jmp_buf buffer;
void errorHandler() {
printf("Error occurred! Jumping back to safe state.\n");
longjmp(buffer, 1);
}
int main() {
if (setjmp(buffer) == 0) {
printf("Executing main program...\n");
errorHandler();
} else {
printf("Recovered from error.\n");
}
return 0;
}Utilizzare errno per gli errori di sistema
Utilizzare errno per gli errori di sistema
La variabile errno memorizza i codici di errore restituiti dalle chiamate di sistema.
Esempio:
#include
Funzioni come fopen() impostano errno quando si verificano errori.
Esempio: utilizzare errno per la gestione dei file
Esempio: utilizzare errno per la gestione dei file
Questo programma controlla errno quando apre un file inesistente.
#include <stdio.h>
#include <errno.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("Error opening file");
}
return 0;
}Buone pratiche per la gestione degli errori
Buone pratiche per la gestione degli errori
Per gestire gli errori in modo efficace:
- Controlli i valori restituiti dalle funzioni.
- Utilizzi
errnoper gli errori di sistema. - Utilizzi
setjmpelongjmpsolo quando necessario.
Riepilogo
Riepilogo
In questa lezione ha imparato:
- Come gestire gli errori utilizzando i valori restituiti.
- Come
setjmpelongjmpsimulano la gestione delle eccezioni. - Come utilizzare
errnoper rilevare gli errori di sistema.
Questa è la conclusione della sezione Debugging e gestione degli errori in C!

Domande Frequenti
La lezione «Gestione delle eccezioni in C» è gratuita?
Sì — il testo completo di «Gestione delle eccezioni in C» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 3 lezioni in totale.
Cosa imparerò in «Gestione delle eccezioni in C»?
Implementi strategie solide di gestione degli errori senza un meccanismo integrato per le eccezioni. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.
Quanto tempo richiede la lezione «Gestione delle eccezioni in C»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Debug con GDB
- Errori comuni durante l'esecuzione
- Gestione delle eccezioni in C