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.
Sfida
FacileRiceverai 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
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist5Registro dei voti degli studenti
Configurazione del progetto: struttura dei datiAggiungere un nuovo studenteAggiungere un voto a uno studenteCalcolare la media dello studenteTrovare lo studente con la media più altaGenerare una pagella8Gestione degli errori e delle eccezioni
Comprendere gli errori PHPIl blocco 'try...catch'Il blocco 'finally'Lanciare un'eccezioneCreare un'eccezione personalizzataUsare un'eccezione personalizzataRiepilogo: convalida dell'input3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online