📢 Nuovo Corso Bootstrap Completo disponibile!

Esercizi Gestione Errori PHP

Ecco degli esercizi con soluzione per praticare la gestione degli errori in PHP.

Esercizio 1: Utilizzare try e catch

Utilizzare `try` e `catch` per gestire una divisione per zero.
<?php
function dividi($dividendo, $divisore) {
if ($divisore == 0) {
throw new Exception("Divisione per zero.");
}
return $dividendo / $divisore;
}
try {
echo dividi(10, 0);
} catch (Exception $e) {
echo "Errore: " . $e->getMessage(); // Output: Errore: Divisione per zero.
}
?>

Esercizio 2: Utilizzare finally

Utilizzare `try`, `catch` e `finally` per eseguire del codice indipendentemente dal fatto che si verifichi un'eccezione.
<?php
function dividi($dividendo, $divisore) {
if ($divisore == 0) {
throw new Exception("Divisione per zero.");
}
return $dividendo / $divisore;
}
try {
echo dividi(10, 2); // Output: 5
} catch (Exception $e) {
echo "Errore: " . $e->getMessage();
} finally {
echo " Questo viene eseguito comunque."; // Output: Questo viene eseguito comunque.
}
?>

Esercizio 3: Creare un’eccezione personalizzata

Creare una classe di eccezione personalizzata e lanciarla in una funzione.
<?php
class EccezionePersonalizzata extends Exception {}
function verificaNumero($numero) {
if ($numero > 10) {
throw new EccezionePersonalizzata("Numero maggiore di 10.");
}
return true;
}
try {
verificaNumero(15);
} catch (EccezionePersonalizzata $e) {
echo "Errore: " . $e->getMessage(); // Output: Errore: Numero maggiore di 10.
}
?>

Esercizio 4: Gestione degli errori con set_error_handler

Creare una funzione personalizzata per gestire gli errori utilizzando `set_error_handler`.
<?php
function gestoreErrori($errno, $errstr) {
echo "Errore [$errno]: $errstr";
}
set_error_handler("gestoreErrori");
echo $variabileNonDefinita; // Output: Errore [8]: Undefined variable: variabileNonDefinita
?>

Esercizio 5: Utilizzare trigger_error

Generare un errore personalizzato utilizzando `trigger_error`.
<?php
function calcola($numero) {
if ($numero < 0) {
trigger_error("Numero negativo non consentito.", E_USER_WARNING);
}
return $numero * 2;
}
echo calcola(-5); // Output: PHP Warning: Numero negativo non consentito.
?>

Esercizio 6: Logging degli errori

Creare una funzione per loggare gli errori in un file.
<?php
function gestoreErrori($errno, $errstr) {
$log = "Errore [$errno]: $errstr\n";
error_log($log, 3, "errori.log");
}
set_error_handler("gestoreErrori");
echo $variabileNonDefinita; // Output nel file errori.log: Errore [8]: Undefined variable: variabileNonDefinita
?>

Esercizio 7: Restituire un messaggio di errore JSON

Gestire un'eccezione e restituire un messaggio di errore in formato JSON.
<?php
function dividi($dividendo, $divisore) {
if ($divisore == 0) {
throw new Exception("Divisione per zero.");
}
return $dividendo / $divisore;
}
try {
echo dividi(10, 0);
} catch (Exception $e) {
echo json_encode(["errore" => $e->getMessage()]); // Output: {"errore":"Divisione per zero."}
}
?>

Esercizio 8: Configurare il display degli errori

Configurare PHP per visualizzare tutti gli errori e i warning.
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
echo $variabileNonDefinita; // Output: Warning: Undefined variable $variabileNonDefinita
?>