Menu
Coddy logo textTech

Il blocco 'try...catch'

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 53 di 68.

Quando il tuo codice PHP incontra problemi che potrebbero causarne l’arresto anomalo, hai bisogno di un modo per gestire queste situazioni in modo appropriato. Il blocco try...catch offre un approccio strutturato per gestire le eccezioni, speciali oggetti di errore che rappresentano problemi gravi nel tuo codice.

Il blocco try contiene codice che potrebbe non funzionare o generare un'eccezione. Se si verifica un'eccezione all'interno di questo blocco, PHP interrompe immediatamente l'esecuzione del codice rimanente nel blocco try e passa al blocco catch corrispondente. Il blocco catch gestisce l'eccezione, consentendo allo script di continuare a funzionare invece di bloccarsi.

<?php
try {
    // Codice che potrebbe generare un'eccezione
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // Gestisci l'eccezione
    echo "An error occurred: " . $e->getMessage();
}
?>

Il blocco catch riceve un oggetto Exception che contiene informazioni su cosa è andato storto. Puoi accedere al messaggio di errore usando il metodo getMessage(). Questo approccio impedisce che l'intero script si interrompa quando qualcosa va storto, dandoti il controllo su come vengono gestiti gli errori e su ciò che vedono gli utenti.

challenge icon

Sfida

Facile

Riceverai un input: un numero che rappresenta un'età. L'input potrebbe essere un numero negativo, che non sarebbe valido come età.

Leggi l'input, convertilo in un numero intero e crea un blocco try...catch. All'interno del blocco try, verifica se l'età è negativa. Se è negativa, genera una nuova Exception con il messaggio "Age cannot be negative". Se l'età è valida (zero o positiva), stampa "Valid age: " seguito dal valore dell'età.

Nel blocco catch, gestisci l'eccezione stampando "Error: " seguito dal messaggio dell'eccezione, usando il metodo getMessage().

Formato dell'input: Una riga contenente un numero intero (esempio: 25 o -5)

Output previsto:

  • Se l'età è valida: Valid age: seguito dal valore dell'età
  • Se l'età è negativa: Error: Age cannot be negative

Provalo tu

<?php
// Lee la entrada
$age = intval(fgets(STDIN));

// TODO: Escribe tu código a continuación
// Crea un bloque try...catch para validar la edad


?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online