Menu
Coddy logo textTech

blocco try-catch

Lezione 17 di 23 del corso Gestione dei file in C++ di Coddy.

Un blocco try viene creato usando la parola chiave try seguita da parentesi graffe. Usiamo il blocco try per racchiudere le istruzioni che potrebbero causare un'eccezione e impedire al programma di funzionare correttamente.


Quando apri un file per leggerlo o scriverci, diverse cose possono andare storte, ad esempio il file potrebbe non esistere, potrebbero esserci problemi di autorizzazioni o lo spazio su disco potrebbe esaurirsi. Inserendo le operazioni sui file all'interno di un blocco try, puoi prevedere questi problemi e preparare il tuo programma a gestirli efficacemente.

string error_message = "File can't be found"
ifstream file;
try {
	file.open("example.txt");
	if(!file.is_open())
		throw s;
	}

In questo programma, se il file non esiste, il programma proverà ad aprirlo, ma non ci riuscirà; in tal caso, verrà lanciato il messaggio File can't be found will be thrown


Il blocco catch viene usato per definire come il tuo programma dovrebbe rispondere quando viene lanciata un'eccezione all'interno del corrispondente blocco try. Nel contesto della gestione dei file, questo è fondamentale per mantenere la robustezza e l'affidabilità della tua applicazione.

string error_message = "File not found"
ifstream file;
try {
	file.open("example.txt");
	if(!file.is_open())
		throw error_message;
} catch(string msg) {
	cerr << msg << endl;
Output:
File not found

 Questo blocco catch intercetta il messaggio di errore e lo visualizza, consentendo al programma di gestire l'errore.

In questo modo, è possibile gestire qualsiasi errore

challenge icon

Sfida

Facile

Prova ad aprire 3 file

  • code.txt
  • messages.txt
  • python.txt

Se è possibile aprire i file in quest'ordine, lancia il “messaggio di errore” File opened successfully; altrimenti, lancia il messaggio di errore Unable to open file, che poi catturerai e stamperai.

Provalo tu

#include <iostream>
#include <fstream>

using namespace std;

int main() 
{
    
    // Inserisci qui il tuo codice
    
    return 0;
}

Tutte le lezioni di Gestione dei file in C++

Esercitati da solo: Compilatore C++ online