尝试用PHP捕获 - 我应该在'尝试'块?

时间:2013-02-24 13:30:49

标签: php try-catch

以下是函数中的try catch语句。我没有多使用try catch语句,我想知道如何在try catch语句中返回值。我应该在try和catch语句之后返回一个值,还是在try块中返回OK?

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 个答案:

答案 0 :(得分:16)

  

在try块中返回OK?

是的,确实如此。如果你需要在那里返回值,那就去做吧。

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

}
catch(Exception $e){

}