La gestió d'errors i excepcions és una part fonamental del desenvolupament de programari, ja que permet als desenvolupadors manejar situacions inesperades de manera controlada i segura. En aquest tema, aprendrem com PHP maneja els errors i les excepcions, i com podem utilitzar aquestes eines per millorar la robustesa i la seguretat del nostre codi.
Continguts
Tipus d'Errors en PHP
PHP categoritza els errors en diverses classes. Els més comuns són:
- Errors de Sintaxi (Parse Errors): Aquests errors es produeixen quan el codi PHP no està escrit correctament.
- Errors Fatals (Fatal Errors): Aquests errors es produeixen quan PHP troba un problema que impedeix l'execució del codi.
- Errors d'Avís (Warning Errors): Aquests errors indiquen problemes no fatals. El codi continua executant-se.
- Errors de Notificació (Notice Errors): Aquests errors indiquen problemes menors, com l'ús de variables no definides.
Gestió Bàsica d'Errors
PHP proporciona diverses funcions per gestionar errors. Les més comunes són error_reporting()
, set_error_handler()
, i trigger_error()
.
Exemple de error_reporting()
<?php // Mostrar tots els errors error_reporting(E_ALL); // No mostrar cap error error_reporting(0); ?>
Exemple de set_error_handler()
<?php function customError($errno, $errstr) { echo "Error: [$errno] $errstr"; } // Establir el gestor d'errors personalitzat set_error_handler("customError"); // Provocar un error echo($test); ?>
Exemple de trigger_error()
<?php // Provocar un error personalitzat if ($test > 1) { trigger_error("El valor de test és massa alt", E_USER_WARNING); } ?>
Excepcions en PHP
Les excepcions són una manera més avançada de gestionar errors. Permeten separar la lògica de l'error de la lògica principal del programa.
Exemple bàsic d'Excepcions
<?php function divide($dividend, $divisor) { if ($divisor == 0) { throw new Exception("Divisió per zero."); } return $dividend / $divisor; } try { echo divide(10, 0); } catch (Exception $e) { echo "Error: " . $e->getMessage(); } ?>
Creació d'Excepcions Personalitzades
Podem crear les nostres pròpies classes d'excepcions per gestionar errors específics de la nostra aplicació.
Exemple d'Excepció Personalitzada
<?php class CustomException extends Exception { public function errorMessage() { // Error message personalitzat return "Error personalitzat: " . $this->getMessage(); } } try { throw new CustomException("Això és un error personalitzat."); } catch (CustomException $e) { echo $e->errorMessage(); } ?>
Pràctiques Recomanades
- Utilitza Excepcions per a Errors Crítics: Les excepcions són ideals per a errors que no es poden recuperar fàcilment.
- Registra Errors: Utilitza
error_log()
per registrar errors en un fitxer o sistema de registre. - No Mostris Errors en Producció: Configura el teu entorn de producció per no mostrar errors als usuaris finals.
Exercicis Pràctics
Exercici 1: Gestió Bàsica d'Errors
Crea un script PHP que provoqui un error d'avís i utilitza set_error_handler()
per gestionar-lo.
Exercici 2: Excepcions
Escriu una funció que llegeixi un fitxer. Si el fitxer no existeix, llença una excepció. Gestiona l'excepció amb un bloc try-catch
.
Solucions
Solució Exercici 1
<?php function customError($errno, $errstr) { echo "Error: [$errno] $errstr"; } set_error_handler("customError"); echo($test); ?>
Solució Exercici 2
<?php function readFileContent($filename) { if (!file_exists($filename)) { throw new Exception("El fitxer no existeix."); } return file_get_contents($filename); } try { echo readFileContent("noexistentfile.txt"); } catch (Exception $e) { echo "Error: " . $e->getMessage(); } ?>
Conclusió
La gestió d'errors i excepcions és essencial per crear aplicacions PHP robustes i segures. Hem après a utilitzar les eines bàsiques de PHP per gestionar errors i excepcions, així com a crear excepcions personalitzades. Practica aquests conceptes amb els exercicis proporcionats per consolidar el teu coneixement.
Curs de Programació PHP
Mòdul 1: Introducció a PHP
- Què és PHP?
- Configuració de l'Entorn de Desenvolupament
- El teu Primer Script PHP
- Sintaxi i Variables de PHP
- Tipus de Dades en PHP
Mòdul 2: Estructures de Control
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Àmbit de Variables
- Funcions Anònimes i Closures
Mòdul 4: Arrays
Mòdul 5: Treballant amb Formularis
Mòdul 6: Treballant amb Fitxers
- Lectura i Escriptura de Fitxers
- Funcions de Gestió de Fitxers
- Permisos de Fitxers
- Funcions de Directori
Mòdul 7: Programació Orientada a Objectes (OOP)
- Introducció a OOP
- Classes i Objectes
- Propietats i Mètodes
- Herència
- Interfícies i Classes Abstractes
- Traits
Mòdul 8: Treballant amb Bases de Dades
- Introducció a les Bases de Dades
- Connexió a una Base de Dades MySQL
- Realització d'Operacions CRUD
- Ús de PDO per a la Interacció amb Bases de Dades
- Seguretat en Bases de Dades
Mòdul 9: Tècniques Avançades de PHP
- Gestió d'Errors i Excepcions
- Sessions i Cookies
- Expressions Regulars
- Treballant amb JSON i XML
- PHP i Serveis Web
Mòdul 10: Frameworks PHP i Millors Pràctiques
- Introducció als Frameworks PHP
- Començant amb Laravel
- Arquitectura MVC
- Millors Pràctiques en Desenvolupament PHP
- Proves i Depuració