创建新的异常类,新参数

时间:2013-05-14 12:42:35

标签: php exception exception-handling

我正在编写一些新代码,我想在其中使用一些自定义的异常。例如TableCreationFailedException。由于我使用的是PHP的基类,因此派生自Exception类。

如果出现此特殊异常,则需要保存无法创建的表。

我想知道如何在异常设置中最好地拥有此表字段。构造函数中的必需参数似乎是要走的路。我是否将新参数放在参数列表的前面?如果我不指望需要它们,我会丢弃消息和论据吗?这里有什么约定,如果有的话?

1 个答案:

答案 0 :(得分:2)

没有严格的规则;像这样的东西可以正常工作:

class TableCreationFailedException extends \Exception
{
    public function __construct($table, \Exception $previous = null)
    {
        parent::__construct("Table $table could not be created", 0, $previous);
    }
}

在你的情况下,我会将专门的参数$table放在父Exception构造函数可以接受的参数前面。

建议您确保可以通过将$previous添加到构造函数参数来将异常链接在一起。

我遗漏了$code,现在硬编码为0;你可以像这样添加它:

    public function __construct($table, $code = 0, \Exception $previous = null)
    {
        parent::__construct("Table $table could not be created", $code, $previous);
    }