API Cloudfiles: необработанное исключение с get_container, когда контейнер не существует - PullRequest
0 голосов
/ 22 ноября 2011

Я использую 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 ]

1 голос
/ 29 мая 2012

Вы также можете ожидать явного исключения:

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');
}

это не даст сбоя, если у вас проблемы с сетью или что-то связанное.

1 голос
/ 04 декабря 2011
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();
}
...