【发布时间】:2016-04-22 04:47:21
【问题描述】:
我相信 Cloudant 最近更改了他们的一些代码。最近,如果您在 try/catch 语句中进行了存储的操作。 Cloudant 将向框架返回一个“错误”:
未捕获的异常“couchException”和消息“继续”
当然你可以在 catch 语句中处理它,但它应该在 PHP-on-Couch 库的 Try 语句中返回为“成功”。
有人遇到过这种情况或知道如何处理吗?最大的问题是您无法在 catch 语句中获取 ID 和 Rev,因为它会作为错误出现:
try { // does not return here, goes to catch
$response = $client->storeDoc($doc);
$response_json['status'] = 'success';
$response_json['id'] = $response->id;
$response_json['rev'] = $response->rev;
} catch (Exception $e) { // even though the doc is successfully storing
// check for accepted BEG
$error = '';
$error = $e->getMessage();
$err_pos = strpos($error,"Accepted");
$err_pos_2 = strpos($error,"Continue");
if($err_pos !== false OR $err_pos_2 !== false){ // success
$response_json['status'] = 'success';
$response_json['id'] = $response->id; // returns null
$response_json['rev'] = $response->rev; // returns null
} else { // truely an error
$response_json['status'] = 'fail';
$response_json['message'] = $e->getMessage();
$response_json['code'] = $e->getCode();
}
// check for accepted END
}
【问题讨论】: