Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 异常和错误之间的区别?_Php_Exception Handling_Error Handling - Fatal编程技术网

Php 异常和错误之间的区别?

Php 异常和错误之间的区别?,php,exception-handling,error-handling,Php,Exception Handling,Error Handling,错误和异常之间有什么区别 我在网上和几本书中阅读了大量的资源,但是提供的解释不是很透彻。因此,我仍然感到困惑 谢谢 编辑: 看起来我问了两个问题,可能让人困惑。我想回答的主要问题是错误和异常之间的区别。因此,我对上述内容进行了编辑,以使其更加具体。谢谢大家的回答。。异常和错误适用于代码出错时。用户或多或少会输入错误的登录信息。检查用户名/密码是否正确,如果不正确,请将用户重定向回登录页面(标题(

错误和异常之间有什么区别

我在网上和几本书中阅读了大量的资源,但是提供的解释不是很透彻。因此,我仍然感到困惑

谢谢

编辑:
看起来我问了两个问题,可能让人困惑。我想回答的主要问题是错误和异常之间的区别。因此,我对上述内容进行了编辑,以使其更加具体。谢谢大家的回答。

。异常和错误适用于代码出错时。用户或多或少会输入错误的登录信息。检查用户名/密码是否正确,如果不正确,请将用户重定向回登录页面(
标题(
),然后如果设置了
$\u GET['failed']
,则显示一条消息。那是最简单的方法


关于例外情况/错误。。。您通常应该坚持使用异常。您抛出一个异常,然后捕获它并处理它。我认为
trigger\u error
更适合在不知道如何处理catch块中的错误时将错误传播回客户端。

首先,异常可以继续执行脚本。此外,trigger_error始终报告调用trigger_error的行和文件。

没有“应该”或“最好”的错误处理方法

一般来说,有两种类型的错误

  • 由程序的其他部分处理的。用户从未看到或知道这些错误,至少不是以直接的方式
  • 那些已经造成足够的故障,需要通知用户的
  • 请注意,这两者都与您用来处理错误的特定PHP机制无关

    如果使用异常… 然后我建议全面使用异常。让它做大部分的工作-。无效的登录详细信息

    class InvalidLoginException extends Exception
    {
      protected $message = 'Login information is incorrect. Please try again.';
    }
    
    然后您就有了一系列的实现选择

    try {
      $user->login(); // will throw and InvalidLoginException if invalid
    }
    catch ( InvalidLoginException $e )
    {
      // display an error message
    }
    
    或者,如果您选择这样做,让异常处理程序来做。甚至可能以更灵活的方式

    class ApplicationErrorException extends Exception{}
    class InvalidLoginException extends ApplicationErrorException 
    {
      protected $message = 'Login information is incorrect. Please try again.';
    }
    
    然后,在异常处理程序中

    if ( $exception instanceof ApplicationErrorException )
    {
      // dislpay error message
    }
    

    但是异常并不是唯一的方法,而且。

    另一方面,您应该仅在异常情况下使用异常。无效的用户输入总是发生,应该是预期的。重复。你应该把文章的最后一行放在最上面并加粗。对于初学者来说,更重要的是了解为什么以及何时应该使用某些东西,而不仅仅是被告知如何使用。