2013-02-24 6 views
14

Unten ist mein Versuch, die Anweisung in Funktion zu fangen. Ich habe try catch-Anweisung nicht viel verwendet, ich wollte wissen, wie man Werte in einer try-catch-Anweisung zurückgibt, sollte ich einen Wert nach try and catch-Anweisung zurückgeben oder in try-Block zurückgeben, ist ok?versuchen und fangen in PHP sollte ich in try Block zurückkehren?

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

Haben Sie es versucht? Das ist absolut in Ordnung – Eric

Antwort

16

in Try-Block Rückkehr ist ok?

Ja ist es. Wenn Sie den Wert dort zurückgeben müssen, tun Sie es.

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

}catch(Exception $e){ 

} 
+0

Danke ich war nur verwirrt, wenn es zurückgegeben würde, auch wenn Ausnahme ausgelöst wurde – Yalamber

+0

@askkirati: Achten Sie auf die Rückkehr in einem 'endlich' Block - das könnte sich seltsam verhalten – Eric

+0

@eric PHP hat nicht endgültig Klausel:) –