我正在编写一些新代码,我想在其中使用一些自定义异常。例如TableCreationFailedException
. 由于我使用的是 PHP,因此派生的基类是Exception
类。
在这种特殊异常的情况下,它需要保存无法创建的表。
我想知道如何最好地设置异常中的这个表字段。构造函数中的必需参数似乎是要走的路。我是否将新参数放在参数列表的前面?如果我不希望它们被需要,我是否应该放弃这些信息和论点?如果有的话,这里的约定是什么?
我正在编写一些新代码,我想在其中使用一些自定义异常。例如TableCreationFailedException
. 由于我使用的是 PHP,因此派生的基类是Exception
类。
在这种特殊异常的情况下,它需要保存无法创建的表。
我想知道如何最好地设置异常中的这个表字段。构造函数中的必需参数似乎是要走的路。我是否将新参数放在参数列表的前面?如果我不希望它们被需要,我是否应该放弃这些信息和论点?如果有的话,这里的约定是什么?
没有硬性规定;像这样的东西会很好用:
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);
}