【问题标题】:Exceptions - for user notifications or error logging?例外 - 用于用户通知或错误记录?
【发布时间】:2011-12-16 20:05:52
【问题描述】:

我正在尝试找出应该使用哪些异常;记录应用程序错误,或显示用户错误,如果两者兼而有之,我应该如何区分和处理用户错误(例如登录失败)和应用程序错误(例如连接到数据库失败)以及异常。

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

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());
}

以上两个示例中哪一个是合适的用例?

【问题讨论】:

标签: php exception error-handling


【解决方案1】:

异常用于在您的程序的一部分上发出异常行为的信号。在正常运行期间,您的程序应该通常会抛出异常。诸如登录失败之类的事情是您的登录机制的正常结果,而不是例外。

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

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

更多详情请见my previous answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2012-07-08
    • 2012-12-28
    相关资源
    最近更新 更多