[英]Thrown exception, but how to catch it properly in PHP?
我的问题是我在PHP的class函数中有自己定义的异常,但是可以用非常有趣的方式阻止页面的渲染。 基本上,当捕获异常时,页面不会呈现。 取而代之的是,它给了我一些例外,这与我的期望完全不同。 我有抛出异常的函数,我确实在子类的函数中捕获了该异常,因为我本身不在子类中使用此类。
function auth($username, $password) {
if(!ssh2_auth_password($this->ssh, $username, $password)) {
throw new Exception('Invalid credentials');
return false;
}
$fingerprint = ssh2_fingerprint($this->ssh, SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);
if (!$fingerprint) {
throw new Exception('No fingerprint');
return false;
}
return $fingerprint;
}
抛出的异常是“无效的凭据”
子类的函数,该函数被调用
try {
$this->ssh->setupConnection($data['connectivity']['serverAdress'], $data['connectivity']['serverPort']);
$fingerprint = $this->ssh->auth($data['connectivity']['serverLogin'], $data['connectivity']['serverPassword']);
} catch (Exception $e) {
$this->errorAndLog("blah blah blah");
return false;
}
子类中的所有内容均正确继承,依此类推
如您所见,我在这里捕获了异常,但是页面仍然无法呈现,并以类似var_dump的样式显示异常:
字符串(18)“无效的凭据”
我不确定是否只是不了解异常或代码在某些时候是错误的
UPD:对不起,出了点问题。 班级不是儿童家长。 具有auth()
函数的类包含在“主”中
public function __construct()
{
$this->ssh = new SSH2();
}
解决了。 只需重新编写代码即可正常工作而不会引发异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.