2013-02-24 9 views
14

Poniżej znajduje się instrukcja wypróbowania funkcji catch. Nie użyłem wypróbować instrukcji catch, bardzo chciałem wiedzieć, jak zwrócić wartości w próbie catch catch, gdybym zwrócił wartość po próbie, a instrukcja catch lub return w bloku try jest w porządku?spróbuj i złap w php powinienem wrócić w bloku try?

function createBucket($bucket_name) { 
    if ($this->isValidBucketName($bucket_name)) { 
     if ($this->doesBucketExist($bucket_name)) { 
      return false; 
     } else { 
      try { 
       $this->s3Client->createBucket(
         array(
          'Bucket' => $bucket_name, 
          'ACL' => CannedAcl::PUBLIC_READ 
         //add more items if required here 
       )); 
       return true; 
      } catch (S3Exception $e) { 
       $this->airbrake->notifyOnException($e); 
       return false; 
      } 
     } 
    } else { 
     $this->airbrake->notifyOnError('invalid bucket name'); 
     return false; 
    } 
} 
+1

Spróbowałeś? To jest absolutnie w porządku – Eric

Odpowiedz

16

powrocie w bloku try jest ok?

Tak jest. Jeśli chcesz zwrócić wartość tam, zrób to.

try { 
    function_that_throws_exception(); 
    return true; // <-- this will never happen if an exception is raised 

}catch(Exception $e){ 

} 
+0

Dzięki, że byłem po prostu zdezorientowany, gdyby został on zwrócony, nawet gdyby wyjątek został podniesiony. – Yalamber

+0

@askkirati: Uważaj na powrót w bloku 'finally' - to może dziwnie zachowywać się – Eric

+0

@eric PHP nie ma klauzuli finałowej:) –

Powiązane problemy