Page tree

 

Ya soy un experto y estoy aquí para ayudar: ¡contesta preguntas pendientes y gana puntos!

Skip to end of metadata
Go to start of metadata

No se deben utilizar las sentencias "exit(...)" y "die(...)"

 

Clave

S1799

Severidad Crítica
RepositorioSonarQube PHP

 

Las sentencias exit(...) y die(...) no se deben utilizar en páginas web PHP porque podría dar lugar a una experiencia de usuario muy mala. En tal caso, el usuario final podría tener la sensación de que el sitio web está caído o ha encontrado un error grave.

Pero por supuesto PHP también puede utilizar para desarrollar aplicacións de línea de comandos y en tal caso el uso de exit(...) o die(...) puede estar justificado, pero debe seguir siendo un uso limitado y no extendido por toda la aplicación. Se deben utilizar excepciones para controlar los errores y las excepciones que deben ser capturadas justo antes de dejar la aplicación para especificar el código de salida con ayuda de sentencias exit(...) o die(...)

Ejemplo

class Foo {
    public function bar($param)  {
        if ($param === 42) {
            exit(23);
        }
    }
}

Solución

class Foo {
    public function bar($param)  {
        if ($param === 42) {
            throw new Exception('Value 42 is not expected.');
        }
    }
}
  • No labels