php - 使用什么内置异常来要求调用方法?
问题描述
假设您希望在调用另一个方法之前先调用某个方法。是否有适当的内置例外?例如,
class Foo
{
private $bar;
public function getBar()
{
if (!$this->bar)
throw new Exception('must call setBar() first');
return $this->bar;
}
public function setBar($bar)
{
$this->bar = $bar;
}
}
Exception
在这个例子中,什么内置异常是泛型的合适替代品?
解决方案
这是php7的官方异常层次结构
http://php.net/manual/en/spl.exceptions.php
引起我注意的例外是
LogicException
- 表示程序逻辑错误的异常。这种异常应该直接导致代码中的修复。
BadMethodCallException
- 如果回调引用未定义的方法或缺少某些参数,则会引发异常。
BadMethodCallException
似乎不太合适,而LogicException
听起来像是所有内置异常中最好的。
推荐阅读
- java - 给定 URI 的注释检索
- css - css网格可变列宽和换行
- bash - 使用脚本设置 S3 生命周期策略
- python - python中带有gridspec.GridSpec的变量wspace
- python - Sqlalchemy AttributeError:“属性”对象没有属性“翻译”
- html - 引导对齐不起作用
- kubernetes - Kubernetes:volume.beta.kubernetes.io/storage-class 或 spec.StorageClassName
- jquery - 有没有办法选择动态创建的 CSS 在其他地方显示?
- python - Python Pandas Series.isin 不起作用
- mysql - 每个用户 ID 只获取所有行的总和一次