Php 为什么geoip抛出异常?

Php 为什么geoip抛出异常?,php,laravel,geoip,Php,Laravel,Geoip,为什么要使用此代码: geoip_country_code_by_name('unknown'); 生成ErrorException,何时必须返回false?这是GeoIP包中的一个错误,在任何版本中都没有修复(在1.1.0模块版本中,错误已修复是否安装了GeoIP?ErrorException附带错误消息,指示错误是什么。是的,GeoIP已安装。错误消息:“GeoIP\u country\u code\u by\u by\u name():Host unknown not found”,但

为什么要使用此代码:

geoip_country_code_by_name('unknown'); 

生成ErrorException,何时必须返回false?

这是GeoIP包中的一个错误,在任何版本中都没有修复(在1.1.0模块版本中,错误已修复

是否安装了GeoIP?ErrorException附带错误消息,指示错误是什么。是的,GeoIP已安装。错误消息:“GeoIP\u country\u code\u by\u by\u name():Host unknown not found”,但在文档()中,此函数在这种情况下应返回false。您尝试过真实的主机名吗?也许它知道
unknown
不是合法的。@Fnatte:Laraval说到点子上了。它定义了抛出
ErrorException
的错误处理程序。PHP生成一个通知(找不到主机名的ip),Laravel对其进行了
ErrorException
。确定什么?主干是否已修复?我没有尝试,但说得很清楚。如果您编辑关于Laravel在通知中创建异常的部分,它就完成了,我将删除我的答案:)(我一回来,就要出去了…)@Wrikken添加了Laravel部分。缺少什么吗?:)@Fnatte:,嗯,
试试。。。catch..
-ing确实有效,否则,完美:)呃,(1)Laravel确实抛出了
ErrorException
(2)可以捕获它。只有当没有捕获到它时,才会调用默认的异常处理程序,这只是一个通用的“有问题”消息,即
debug'
app/config/app.php
中设置为
false,或者将完整的异常+跟踪设置为
true
。因此,解决此问题的方法有以下几种:(1)使用
@`来抑制错误;(2)使用
error\u reporting()
来(暂时)忽略
E\u NOTICE
错误。(3) 重新编译
mod_geoip
,使其不会触发提示。(4) 在代码周围使用
try{…}catch{…}
块。
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) 
    );

}