14

以下は、try catch関数内の私のステートメントです。私は try catch ステートメントをあまり使用したことがなく、try catch ステートメントで値を返す方法を知りたいと思っていました。try および 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;
    }
}
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 に答える