为了在全局异常处理过程中更加好的体现面向对象的思想:在实例化对象的时候通过构造函数对对象的属性进行初始化赋值。要对上文的代码做如下修改。
1、$e = new ParameterException([ //实例化对象 ,相当于调用构造函数
'msg' => $this->error, //函数中采用数组的形式对对象中的属性进行初始化赋值
]);
2、编写构造函数
(1)、ParameterMissEception的构造函数在哪里编写?
在ParameterMissException的父类 BaseException中编写。
(2)、如何编写构造函数?
public function __construct($params = []) //构造函数 ‘--’两个下划线,函数的参数必须是数组
{
if (!is_array($params)) { //防御性代码,当传入的参数不为数字时,直接返回
return;
}
if (array_key_exists('code', $params)) { //如果数字params中的key code存在
$this->code = $params['code']; //对code进行赋值
}
if (array_key_exists('msg', $params)) {
$this->msg = $params['msg'];
}
if (array_key_exists('errorCode', $params)) {
$this->errorCode = $params['errorCode'];
}
}
}
网友评论