Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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_Error Handling - Fatal编程技术网

Php 异常-用于用户通知或错误日志记录?

Php 异常-用于用户通知或错误日志记录?,php,exception,error-handling,Php,Exception,Error Handling,我试图弄清楚应该使用哪些异常;记录应用程序错误或显示用户错误,如果两者都有,我应该如何区分和处理用户错误(例如登录失败)和应用程序错误(例如连接数据库失败),但有例外 例如,假设用户尝试登录,但失败(用户错误): if(!$user->login($_POST)) { //$user->login() throws an Exception, throw new Exception("failed login"), on fail. catch(Exception $

我试图弄清楚应该使用哪些异常;记录应用程序错误或显示用户错误,如果两者都有,我应该如何区分和处理用户错误(例如登录失败)和应用程序错误(例如连接数据库失败),但有例外

例如,假设用户尝试登录,但失败(用户错误):

if(!$user->login($_POST)) {
    //$user->login() throws an Exception, throw new Exception("failed login"), on fail.
    catch(Exception $e) {
      print $e->getMessage();
    }
}
public function query($query) {
$this->resource = mysql_query($query) or throw new Exception("Database error:" . mysql_error());
}
或者可能发生数据库错误(错误日志):

if(!$user->login($_POST)) {
    //$user->login() throws an Exception, throw new Exception("failed login"), on fail.
    catch(Exception $e) {
      print $e->getMessage();
    }
}
public function query($query) {
$this->resource = mysql_query($query) or throw new Exception("Database error:" . mysql_error());
}

如果上述两个例子中的任何一个都是异常,那么上述两个例子中的哪一个是合适的用例?

异常是用来表示程序部分的异常行为的。在正常操作期间,您的程序通常根本不应该抛出异常。登录失败之类的情况是登录机制的正常结果,而不是异常

[登录失败可能是用户端的例外(如果用户有理由期望登录无条件工作)!]

典型的异常情况包括内存不足、磁盘空间不足、数据库连接错误或在读取或写入文件时出错。所有这些都是您通常希望工作的事情,因此存在一个异常情况


有关更多详细信息,请参阅。

异常用于表示程序中的异常行为。在正常操作期间,您的程序通常根本不应该抛出异常。登录失败之类的情况是登录机制的正常结果,而不是异常

[登录失败可能是用户端的例外(如果用户有理由期望登录无条件工作)!]

典型的异常情况包括内存不足、磁盘空间不足、数据库连接错误或在读取或写入文件时出错。所有这些都是您通常希望工作的事情,因此存在一个异常情况


有关更多详细信息,请参阅。

查看此问题的首要答案:查看此问题的首要答案: