Excepciones en PHP
try, catch, finally y una clase de excepción propia.
<?php
class EmptyCartException extends RuntimeException {}
function checkout(array $items): int {
if ($items === []) {
throw new EmptyCartException("nothing to buy");
}
return array_sum($items);
}
try {
echo checkout([5, 8]), "\n";
echo checkout([]), "\n";
} catch (EmptyCartException $e) {
echo "refused: ", $e->getMessage(), "\n";
} finally {
echo "till closed\n";
}
Cómo funciona
- Extender
RuntimeExceptionnombra una falla con precisión. throwabortacheckoutantes de que pueda sumar un carrito vacío.catchcoincide por clase y liga el error a$e.finallycorre igual con éxito o con falla.
Palabras clave y builtins usados aquí
arrayarray_sumcatchclassechoextendsfinallyfunctionifnewreturnthrowtry
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 370
- Tokens
- 86
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 64 segundos.
Paso 2 de 3 en Null y errores; paso 20 de 27 en Fundamentos del lenguaje.