0

我有一个从 MySQL 数据库映射记录的实体类。例如,继承实体类的用户类将映射表用户。

class User extends Entity
{
    function init(){ $this->_table = 'user';}
}

当我使用 id 30 映射对象时,我使用

$user = new User(30);

当对象 id 30 不可用(假设它被删除)时,最好的处理方法是什么。

  1. 抛出异常,“此对象不可用”
  2. 返回一个空对象。

一个或一组具有优点/缺点的解决方案将不胜感激。

4

5 回答 5

1

我喜欢在这种情况下使用异常,因为异常可能包含对象不可用的各种原因。一个你不知道的空对象。

于 2012-07-16T20:59:20.273 回答
1

抛出异常意味着您的应用程序中发生了异常情况。在我看来,具有特定 ID 的对象不存在并不是特殊情况。我会返回一个空对象。

抛出/捕获异常的机制会带来性能损失。

于 2012-07-16T20:59:51.800 回答
0

我个人更喜欢返回带有错误代码属性的对象。

于 2012-07-16T21:22:49.633 回答
0

抛出异常。这样,您可以在尝试构建 User 对象的任何地方捕获它,并决定在那里做什么。

于 2012-07-16T20:59:33.920 回答
0

如果不知道程序的设计,例如这些“ID”的来源、生成方式等,很难说。
这里的优缺点取决于您的程序设计和您对给定情况的需求. 一旦你评估了这些,你就可以确定什么是最适合你的。

于 2012-07-16T21:27:57.627 回答