14

下面是我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;
    }
}
4

1 回答 1

18

在 try 块中返回好吗?

是的。如果您需要在那里返回值,请执行此操作。

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

}
catch(Exception $e){

}
于 2013-02-24T13:33:33.803 回答