Crear un controlador de excepciones personalizado en PHP 7

Al extender la clase de excepción incorporada, PHP nos permite lanzar cualquier objeto como si fuera una excepción. Echemos un vistazo al siguiente ejemplo:

<?php
class UsernameException extends Exception {}
class PasswordException extends Exception {}
$username = 'john';
$password = '';
try {
if (empty($username)) {
throw new UsernameException();
}
if (empty($password)) {
throw new PasswordException();
}
throw new Exception();
}
catch (UsernameException $e) {
echo 'Caught UsernameException.';
}
catch (PasswordException $e) {
echo 'Caught PasswordException.';
}
catch (Exception $e) {
echo 'Caught Exception.';
}
finally {
echo 'Finally.';
}

Aquí, definimos dos excepciones personalizadas, UsernameException y PasswordException.
Simplemente ampliaron la Excepción incorporada, sin introducir realmente ningún método o funcionalidad nuevos. Luego definimos dos variables, $username y $password . La variable $password se configuró para ser una cadena vacía. Finalmente, establecemos try…catch…finally, con tres bloques de captura diferentes. Los primeros dos bloques de captura están dirigidos a nuestras excepciones personalizadas, y el tercero apunta a la excepción incorporada.
Debido a una contraseña vacía, el ejemplo anterior arrojaría nuevos PasswordException y, por lo tanto, genera la Caught PasswordException.

Comparte