我有这段代码:
<?php
define('ga_email', 'xxxxxxxxx@xxxxx.com'); // GA Email
define('ga_password', 'xxxxxxxxxxx'); // 2-part authorization password
define('profile_id', 'xxxxxxxxx'); // Analytics profile ID
$gapi_url = 'gapi/gapi.class.php';
require_once $gapi_url;
$ga = new gapi(ga_email,ga_password);
// here goes next code
?>
没关系。 Gapi将加载。
但是,如果我将ga_password从xxxxxxxxxxx更改为yyyyyyyyyyy(因此登录GA的信息不正确)我得到一个令人讨厌的错误,没有加载gapi等。
我需要一些if条件来实现,所以它检查我的对象$ ga是否已创建,然后才执行代码。
e.g:
<?php
define('ga_email', 'xxxxxxxxx@xxxxx.com'); // GA Email
define('ga_password', 'yyyyyyyyyyyyyy'); // 2-part authorization password
define('profile_id', 'xxxxxxxxx'); // Analytics profile ID
$gapi_url = 'gapi/gapi.class.php';
require_once $gapi_url;
$ga = new gapi(ga_email,ga_password);
if($ga loaded) {
// SUCCESS
// here goes next code
} else {
// FAILURE
echo "Your connection details are wrong.";
}
?>
所以,相反看起来很糟糕的PHP错误,我会得到更好的“你的连接细节是错误的。”消息。
答案 0 :(得分:2)
在查看类的源代码后,似乎构造函数在错误详细信息错误时不会抛出异常,但只有在使用凭据时才会抛出异常。将所有对try...catch
块中对象的调用包含在内将为您提供一些错误处理功能:
try {
$ga = new gapi(ga_email,ga_password);
// here goes next code
} catch (Exception $ex) {
// FAILURE
echo "Your connection details are wrong.";
// $ex->getMessage() has a detailed message
}
您还需要确保知道构造函数方法的正确签名,appears to be the following:
public function __construct($auth_method)
答案 1 :(得分:0)
在__construct()
的gapi上检查用户名和密码是否有效。还要创建另一个公共函数或变量来返回它是否是有效的登录名。