PHP->异常处理

本文介绍了PHP中的异常处理机制,特别是内置的Exception类的使用方法。包括如何创建异常、捕获异常以及获取异常的相关信息,如错误代码、错误消息、发生异常的文件路径及行号。

1、Exception类

PHP的异常处理中提供了内置类—Exception,其构造函数需要两个参数,一个错误消息和一个错误代码。

getCode() —返回传递给构造函数的代码
getMessage() — 返回传递给构造函数的消息
getFile() —返回产生异常的代码文件的完整路径
getLine() —返回代码文件中产生异常的代码行号
getTrace() —返回一个包含了产生异常的代码回退路径的数组

<?php

try{
    throw new Exception('A terrible error has occurred',42);
}

catch (Exception $e){
    echo "Exception".$e->getCode().$e->getMessage()."<br />".
    in .$e->getFile(). on line $e->getLine(). "<br />";
}

?>
获取gpg密钥失败 centos[root@192 ~]# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y 已加载插件:fastestmirror Loading mirror speeds from cached hostfile zabbix | 3.0 kB 00:00:00 zabbix-frontend | 3.0 kB 00:00:00 zabbix-non-supported | 2.9 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 zabbix-nginx-conf-scl.noarch.0.5.0.47-1.el7 将被 安装 --> 正在处理依赖关系 zabbix-web-deps-scl = 5.0.47-1.el7,它被软件包 zabbix-nginx-conf-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-nginx116-nginx,它被软件包 zabbix-nginx-conf-scl-5.0.47-1.el7.noarch 需要 ---> 软件包 zabbix-web-mysql-scl.noarch.0.5.0.47-1.el7 将被 安装 --> 正在处理依赖关系 zabbix-web = 5.0.47-1.el7,它被软件包 zabbix-web-mysql-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-mysqlnd,它被软件包 zabbix-web-mysql-scl-5.0.47-1.el7.noarch 需要 --> 正在检查事务 ---> 软件包 rh-nginx116-nginx.x86_64.1.1.16.1-6.el7 将被 安装 --> 正在处理依赖关系 gd,它被软件包 1:rh-nginx116-nginx-1.16.1-6.el7.x86_64 需要 --> 正在处理依赖关系 policycoreutils-python,它被软件包 1:rh-nginx116-nginx-1.16.1-6.el7.x86_64 需要 --> 正在处理依赖关系 rh-nginx116-runtime,它被软件包 1:rh-nginx116-nginx-1.16.1-6.el7.x86_64 需要 ---> 软件包 rh-php72-php-mysqlnd.x86_64.0.7.2.24-1.el7 将被 安装 --> 正在处理依赖关系 rh-php72-php-pdo(x86-64) = 7.2.24-1.el7,它被软件包 rh-php72-php-mysqlnd-7.2.24-1.el7.x86_64 需要 ---> 软件包 zabbix-web.noarch.0.5.0.47-1.el7 将被 安装 --> 正在处理依赖关系 dejavu-sans-fonts,它被软件包 zabbix-web-5.0.47-1.el7.noarch 需要 ---> 软件包 zabbix-web-deps-scl.noarch.0.5.0.47-1.el7 将被 安装 --> 正在处理依赖关系 rh-php72,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-bcmath,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-fpm,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-gd,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-ldap,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-mbstring,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在处理依赖关系 rh-php72-php-xml,它被软件包 zabbix-web-deps-scl-5.0.47-1.el7.noarch 需要 --> 正在检查事务 ---> 软件包 dejavu-sans-fonts.noarch.0.2.33-6.el7 将被 安装 --> 正在处理依赖关系 dejavu-fonts-common = 2.33-6.el7,它被软件包 dejavu-sans-fonts-2.33-6.el7.noarch 需要 ---> 软件包 gd.x86_64.0.2.0.35-27.el7_9 将被 安装 --> 正在处理依赖关系 libjpeg.so.62(LIBJPEG_6.2)(64bit),它被软件包 gd-2.0.35-27.el7_9.x86_64 需要 --> 正在处理依赖关系 libjpeg.so.62()(64bit),它被软件包 gd-2.0.35-27.el7_9.x86_64 需要 --> 正在处理依赖关系 libfontconfig.so.1()(64bit),它被软件包 gd-2.0.35-27.el7_9.x86_64 需要 --> 正在处理依赖关系 libXpm.so.4()(64bit),它被软件包 gd-2.0.35-27.el7_9.x86_64 需要 --> 正在处理依赖关系 libX11.so.6()(64bit),它被软件包 gd-2.0.35-27.el7_9.x86_64 需要 ---> 软件包 policycoreutils-python.x86_64.0.2.5-34.el7 将被 安装 --> 正在处理依赖关系 setools-libs >= 3.3.8-4,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libsemanage-python >= 2.5-14,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 audit-libs-python >= 2.1.3-4,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 python-IPy,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libqpol.so.1(VERS_1.4)(64bit),它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libqpol.so.1(VERS_1.2)(64bit),它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libcgroup,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libapol.so.4(VERS_4.0)(64bit),它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 checkpolicy,它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libqpol.so.1()(64bit),它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 --> 正在处理依赖关系 libapol.so.4()(64bit),它被软件包 policycoreutils-python-2.5-34.el7.x86_64 需要 ---> 软件包 rh-nginx116-runtime.x86_64.0.1.16-1.el7 将被 安装 --> 正在处理依赖关系 scl-utils,它被软件包 rh-nginx116-runtime-1.16-1.el7.x86_64 需要 ---> 软件包 rh-php72.x86_64.0.1-2.el7 将被 安装 --> 正在处理依赖关系 rh-php72-runtime(x86-64) = 1-2.el7,它被软件包 rh-php72-1-2.el7.x86_64 需要 --> 正在处理依赖关系 rh-php72-runtime,它被软件包 rh-php72-1-2.el7.x86_64 需要 --> 正在处理依赖关系 rh-php72-php-common(x86-64),它被软件包 rh-php72-1-2.el7.x86_64 需要 --> 正在处理依赖关系 rh-php72-php-cli(x86-64),它被软件包 rh-php72-1-2.el7.x86_64 需要 --> 正在处理依赖关系 rh-php72-php-pear,它被软件包 rh-php72-1-2.el7.x86_64 需要 ---> 软件包 rh-php72-php-bcmath.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-fpm.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-gd.x86_64.0.7.2.24-1.el7 将被 安装 --> 正在处理依赖关系 libwebp.so.4()(64bit),它被软件包 rh-php72-php-gd-7.2.24-1.el7.x86_64 需要 ---> 软件包 rh-php72-php-ldap.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-mbstring.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-pdo.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-xml.x86_64.0.7.2.24-1.el7 将被 安装 --> 正在检查事务 ---> 软件包 audit-libs-python.x86_64.0.2.8.5-4.el7 将被 安装 ---> 软件包 checkpolicy.x86_64.0.2.5-8.el7 将被 安装 ---> 软件包 dejavu-fonts-common.noarch.0.2.33-6.el7 将被 安装 --> 正在处理依赖关系 fontpackages-filesystem,它被软件包 dejavu-fonts-common-2.33-6.el7.noarch 需要 ---> 软件包 fontconfig.x86_64.0.2.13.0-4.3.el7 将被 安装 ---> 软件包 libX11.x86_64.0.1.6.7-5.el7_9 将被 安装 --> 正在处理依赖关系 libX11-common >= 1.6.7-5.el7_9,它被软件包 libX11-1.6.7-5.el7_9.x86_64 需要 --> 正在处理依赖关系 libxcb.so.1()(64bit),它被软件包 libX11-1.6.7-5.el7_9.x86_64 需要 ---> 软件包 libXpm.x86_64.0.3.5.12-2.el7_9 将被 安装 ---> 软件包 libcgroup.x86_64.0.0.41-21.el7 将被 安装 ---> 软件包 libjpeg-turbo.x86_64.0.1.2.90-8.el7 将被 安装 ---> 软件包 libsemanage-python.x86_64.0.2.5-14.el7 将被 安装 ---> 软件包 libwebp.x86_64.0.0.3.0-11.el7 将被 安装 ---> 软件包 python-IPy.noarch.0.0.75-6.el7 将被 安装 ---> 软件包 rh-php72-php-cli.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-common.x86_64.0.7.2.24-1.el7 将被 安装 --> 正在处理依赖关系 rh-php72-php-json(x86-64) = 7.2.24-1.el7,它被软件包 rh-php72-php-common-7.2.24-1.el7.x86_64 需要 --> 正在处理依赖关系 rh-php72-php-zip(x86-64) = 7.2.24-1.el7,它被软件包 rh-php72-php-common-7.2.24-1.el7.x86_64 需要 ---> 软件包 rh-php72-php-pear.noarch.1.1.10.5-1.el7 将被 安装 --> 正在处理依赖关系 rh-php72-php-posix,它被软件包 1:rh-php72-php-pear-1.10.5-1.el7.noarch 需要 ---> 软件包 rh-php72-runtime.x86_64.0.1-2.el7 将被 安装 ---> 软件包 scl-utils.x86_64.0.20130529-19.el7 将被 安装 ---> 软件包 setools-libs.x86_64.0.3.3.8-4.el7 将被 安装 --> 正在检查事务 ---> 软件包 fontpackages-filesystem.noarch.0.1.44-8.el7 将被 安装 ---> 软件包 libX11-common.noarch.0.1.6.7-5.el7_9 将被 安装 ---> 软件包 libxcb.x86_64.0.1.13-1.el7 将被 安装 --> 正在处理依赖关系 libXau.so.6()(64bit),它被软件包 libxcb-1.13-1.el7.x86_64 需要 ---> 软件包 rh-php72-php-json.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-process.x86_64.0.7.2.24-1.el7 将被 安装 ---> 软件包 rh-php72-php-zip.x86_64.0.7.2.24-1.el7 将被 安装 --> 正在检查事务 ---> 软件包 libXau.x86_64.0.1.0.8-2.1.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================================================================================================================================ Package 架构 版本 源 大小 ================================================================================================================================================================ 正在安装: zabbix-nginx-conf-scl noarch 5.0.47-1.el7 zabbix-frontend 18 k zabbix-web-mysql-scl noarch 5.0.47-1.el7 zabbix-frontend 17 k 为依赖而安装: audit-libs-python x86_64 2.8.5-4.el7 base 76 k checkpolicy x86_64 2.5-8.el7 base 295 k dejavu-fonts-common noarch 2.33-6.el7 base 64 k dejavu-sans-fonts noarch 2.33-6.el7 base 1.4 M fontconfig x86_64 2.13.0-4.3.el7 base 254 k fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k gd x86_64 2.0.35-27.el7_9 updates 146 k libX11 x86_64 1.6.7-5.el7_9 updates 607 k libX11-common noarch 1.6.7-5.el7_9 updates 165 k libXau x86_64 1.0.8-2.1.el7 base 29 k libXpm x86_64 3.5.12-2.el7_9 updates 56 k libcgroup x86_64 0.41-21.el7 base 66 k libjpeg-turbo x86_64 1.2.90-8.el7 base 135 k libsemanage-python x86_64 2.5-14.el7 base 113 k libwebp x86_64 0.3.0-11.el7 updates 170 k libxcb x86_64 1.13-1.el7 base 214 k policycoreutils-python x86_64 2.5-34.el7 base 457 k python-IPy noarch 0.75-6.el7 base 32 k rh-nginx116-nginx x86_64 1:1.16.1-6.el7 centos-sclo-rh 548 k rh-nginx116-runtime x86_64 1.16-1.el7 centos-sclo-rh 26 k rh-php72 x86_64 1-2.el7 centos-sclo-rh 4.3 k rh-php72-php-bcmath x86_64 7.2.24-1.el7 centos-sclo-rh 60 k rh-php72-php-cli x86_64 7.2.24-1.el7 centos-sclo-rh 2.9 M rh-php72-php-common x86_64 7.2.24-1.el7 centos-sclo-rh 680 k rh-php72-php-fpm x86_64 7.2.24-1.el7 centos-sclo-rh 1.5 M rh-php72-php-gd x86_64 7.2.24-1.el7 centos-sclo-rh 151 k rh-php72-php-json x86_64 7.2.24-1.el7 centos-sclo-rh 54 k rh-php72-php-ldap x86_64 7.2.24-1.el7 centos-sclo-rh 59 k rh-php72-php-mbstring x86_64 7.2.24-1.el7 centos-sclo-rh 553 k rh-php72-php-mysqlnd x86_64 7.2.24-1.el7 centos-sclo-rh 166 k rh-php72-php-pdo x86_64 7.2.24-1.el7 centos-sclo-rh 101 k rh-php72-php-pear noarch 1:1.10.5-1.el7 centos-sclo-rh 357 k rh-php72-php-process x86_64 7.2.24-1.el7 centos-sclo-rh 62 k rh-php72-php-xml x86_64 7.2.24-1.el7 centos-sclo-rh 160 k rh-php72-php-zip x86_64 7.2.24-1.el7 centos-sclo-rh 90 k rh-php72-runtime x86_64 1-2.el7 centos-sclo-rh 1.1 M scl-utils x86_64 20130529-19.el7 base 24 k setools-libs x86_64 3.3.8-4.el7 base 620 k zabbix-web noarch 5.0.47-1.el7 zabbix-frontend 3.4 M zabbix-web-deps-scl noarch 5.0.47-1.el7 zabbix-frontend 18 k 事务概要 ================================================================================================================================================================ 安装 2 软件包 (+40 依赖软件包) 总计:17 M 安装大小:64 M Downloading packages: 警告:/var/cache/yum/x86_64/7/centos-sclo-rh/packages/rh-php72-php-xml-7.2.24-1.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f2ee9d55: NOKEY 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SCLo 检索密钥 来自 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SCLo 的无效 GPG 密钥:No key found in given key data
05-23
### Zabbix GPG 密钥验证失败解决方案 当在 CentOS 上使用 `yum` 安装 Zabbix 软件包时,如果遇到 **GPG Key Validation Failed** 的错误提示,通常是因为 YUM 源中的 GPG 密钥未正确导入或配置文件存在问题。以下是可能的原因以及对应的解决方法: #### 原因分析 1. **YUM 源中缺少有效的 GPG 密钥** 如果 `/etc/yum.repos.d/zabbix.repo` 文件中定义的 GPGKey URL 不可用或指向错误的位置,则会引发此问题[^1]。 2. **网络连接问题** 当前系统的网络设置可能导致无法访问远程仓库地址,从而阻止了 GPG 密钥下载[^4]。 3. **本地缓存损坏** 有时由于之前的安装尝试失败或其他原因,可能会导致本地元数据缓存出现问题,进而影响到 GPG 验证过程[^3]。 #### 解决方案 ##### 方法一:手动导入正确的 GPG 密钥 可以先确认官方文档推荐使用的最新版本密钥链接并手工完成其引入操作如下所示: ```bash rpm --import https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX ``` 接着再次运行命令来测试是否能够正常工作: ```bash yum clean all && yum makecache fast yum install -y zabbix-agent2 ``` ##### 方法二:修改 repo 文件内的 gpgcheck 参数值为零临时绕过校验机制 编辑位于路径下的配置档案档位将其内部有关于gpgcheck字段设定改为0即可实现跳过检验流程的目的。 ```bash sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/zabbix.repo ``` 之后重新发起依赖关系解析与实际部署动作: ```bash yum install -y zabbix-agent2 ``` 注意这种方式虽然简便快捷但存在安全隐患因此仅建议作为调试用途而非长期策略应用于此场景之中[^2]. ##### 方法三:更换国内镜像源提高稳定性减少异常状况发生几率 考虑到国外站点可能存在速度较慢甚至不可达的情况我们也可以考虑切换至阿里云所提供的加速镜像服务端口来进行相应调整处理措施具体步骤如下所列: ```bash sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo yum clean all && yum makecache fast yum install -y zabbix-agent2 ``` 以上三种途径均可有效应对由GPG key validation failure所带来的困扰情形之一种最为适合当前环境条件的选择取决于使用者个人偏好及实际情况而定. ```python print("已完成Zabbix Agent2安装") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值