cloudfiles API:当容器不存在时,使用get_container进行未捕获的异常

时间:2011-11-22 07:20:56

标签: php rackspace-cloud rackspace cloudfiles

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

所以我写下以下内容:

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

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

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

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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');
}

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