php – 为什么geoip会抛出异常?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 为什么geoip会抛出异常?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1213字,纯文字阅读大概需要2分钟。
内容图文
为什么这段代码:
geoip_country_code_by_name('unknown');
生成ErrorException,什么时候必须返回false?
解决方法:
这是GeoIP包中的错误,并未在任何版本中修复(< = 1.0.8).然而它固定在行李箱中(see this revision).您可以通过编译来自最新主干的源来解决此问题.
编辑:感谢Wrikken指出Laravel如何处理错误.
使用GeoIP< = 1.0.8时,只要找不到名称,geoip_country_code_by_name就会触发错误(E_NOTICE). Laravel将始终将error_reporting设置为-1并处理所有错误(甚至通知)并将其转换为ErrorExceptions.通常情况下,可以使用try-catch块捕获ErrorExceptions,但在这种情况下,它是不可能的,因为Laravel从不抛出异常,它只是将其转换为显示和记录目的.
可以忽略@-operator的错误.这样做有点不好,因为它会忽略函数可能抛出的所有错误.但是,在这种情况下,当无法访问数据库时,唯一的其他错误geoip_country_code_by_name可以触发警告.因此,如果确保数据库可用,则可以安全地忽略该错误:(代码未测试)
if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
{
@geoip_country_code_by_name('unknown');
}
else
{
// Throw exception or handle the error
throw new Exception(
"Required database not available at " .
geoip_db_filename(GEOIP_COUNTRY_EDITION)
);
}
编辑:
Laravel现在抛出ErrorException,以便可以使用try-catch块捕获它.在撰写本文时,此更改尚未在任何已发布的标记中.但是捕获错误可能适用于Laravel / Framework> = 4.0.8.
内容总结
以上是互联网集市为您收集整理的php – 为什么geoip会抛出异常?全部内容,希望文章能够帮你解决php – 为什么geoip会抛出异常?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。