2013-02-24 2 views
14

다음은 기능에서 try try catch 문입니다. try catch 문을 많이 사용하지 않았습니다. try catch 문에서 값을 반환하는 방법을 알고 싶었습니다. 문을 catch하거나 try 블록을 반환 한 후 값을 반환해야합니까?시도하고 PHP에서 catch 내가 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

시도해 보셨습니까? 이것은 절대적으로 괜찮습니다 – Eric

답변

16

try 블록에서 반환 괜찮습니다?

예입니다. 거기에 값을 반환해야하는 경우 수행하십시오.

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

}catch(Exception $e){ 

} 
+0

예외가 발생한 경우에도 반환 될 경우 혼란 스러웠습니다 – Yalamber

+0

@skkirati : 'finally'블록으로 돌아 오는 것에 조심하십시오 - 이상하게 작동 할 수도 있습니다 – Eric

+0

@eric PHP에는 finally 절이 없습니다.) –

관련 문제