我正在编写一些新代码,我想在其中使用一些自定义的异常。例如TableCreationFailedException
。由于我使用的是PHP的基类,因此派生自Exception
类。
如果出现此特殊异常,则需要保存无法创建的表。
我想知道如何在异常设置中最好地拥有此表字段。构造函数中的必需参数似乎是要走的路。我是否将新参数放在参数列表的前面?如果我不指望需要它们,我会丢弃消息和论据吗?这里有什么约定,如果有的话?
答案 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);
}