1

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

在这种特殊异常的情况下,它需要保存无法创建的表。

我想知道如何最好地设置异常中的这个表字段。构造函数中的必需参数似乎是要走的路。我是否将新参数放在参数列表的前面?如果我不希望它们被需要,我是否应该放弃这些信息和论点?如果有的话,这里的约定是什么?

4

1 回答 1

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);
    }
于 2013-05-14T12:45:17.457 回答