0

我正在使用 rackspace cloudfiles API 即时上传文件,它需要做的第一件事是检查容器是否存在,如果不存在,则创建它。

所以我写了以下内容:

if($container = $conn->get_container('my_container')){
   echo 'yay';

} else {
   $container = $conn->create_container('my_container');
   $container->make_public();   
}                                           

但是如果容器不存在get_container会抛出异常,所以我得到一个致命错误。做我在这里想做的最好的方法是什么?

4

2 回答 2

1
try {
    $container = $conn->get_container('my_container');
    $obj_list = $container->list_objects();
    print_r($obj_list);
}
catch (Exception $e) {
    $container = $conn->create_container('my_container');
    //$container->make_public();
}
于 2011-12-04T00:24:37.983 回答
1

你也可以期待一个明确的例外:

try {
    $container = $conn->get_container('my_container');
    $obj_list = $container->list_objects();
    print_r($obj_list);
}
catch (NoSuchContainerException $e) {
    $container = $conn->create_container('my_container');
}

如果您有网络问题或相关问题,这不会失败。

于 2012-05-29T16:05:49.357 回答