method - php /exception
LogicException vs. RuntimeException (1)
Me preguntaba si había una regla que dijera cuándo usar qué Excepción en PHP ... ¿ Cuándo debo lanzar una LogicException
y cuándo una RuntimeException
?
Por ejemplo, cuando se trata de excepciones como PageNotFoundException
, ¿de qué clase de excepción debo heredar?
Parece que LogicException
es para las comprobaciones de errores "esto nunca puede suceder":
Excepción que representa un error en la lógica del programa. Este tipo de excepción debería conducir directamente a una solución en su código.
Algunas de las otras excepciones de SPL, como BadFunctionCallException
heredan de ella.
RuntimeException
es para casos donde ocurre un error que solo se puede detectar mientras se ejecuta el programa. La denominación es un remanente de los lenguajes compilados, donde ciertos errores se pueden detectar en tiempo de compilación. Al igual que LogicException
, algunas de las otras excepciones de SPL heredan de él.
Probablemente no desee utilizar ninguno de estos como la base para sus propias extensiones específicas a menos que sepa con certeza que su código podría producir otra excepción en la jerarquía de herencia y le gustaría capturar cualquiera de esos en lugar de su excepción específica o todas las excepciones.