为什么可以';我不能在Azure PHP sdk上捕获ServiceException吗?

为什么可以';我不能在Azure PHP sdk上捕获ServiceException吗?,php,azure,blob,Php,Azure,Blob,我在试着找出一个斑点是否存在。当blob不存在时,我的try catch和Azure的ServiceException根本不会被捕获。我试着按照上面的步骤做 这是一些错误堆栈: ServiceException in ServiceRestProxy.php line 491: Fail: Code: 404 Value: The specified blob does not exist. details (if any): . in ServiceRestProxy.php line 491

我在试着找出一个斑点是否存在。当blob不存在时,我的
try catch
和Azure的
ServiceException
根本不会被捕获。我试着按照上面的步骤做

这是一些错误堆栈:

ServiceException in ServiceRestProxy.php line 491:
Fail:
Code: 404
Value: The specified blob does not exist.
details (if any): .
in ServiceRestProxy.php line 491
at ServiceRestProxy::throwIfError(object(Response), array('200', '206')) in ServiceRestProxy.php line 409
at ServiceRestProxy->MicrosoftAzure\Storage\Common\Internal\{closure}(object(ClientException)) in Promise.php line 203

您可能没有使用完全限定的异常类名。尝试:

//...
} catch (\MicrosoftAzure\Storage\Common\Exceptions\ServiceException $e) {
//...
}

您可能没有使用完全限定的异常类名。尝试:

//...
} catch (\MicrosoftAzure\Storage\Common\Exceptions\ServiceException $e) {
//...
}

离题评论。。。。IMHO
getBlob
在下载blob时检查blob是否存在可能是一个非常昂贵的操作。为什么不使用
getblobproperty
这是一个非常轻量级的操作?@GauravMantri我最终使用了
getblobproperty
。说得好。离题评论。。。。IMHO
getBlob
在下载blob时,检查blob是否存在可能是一个非常昂贵的操作。为什么不使用
getBlobProperties
哪一个操作是非常轻量级的?@GauravMantri最终使用
getBlobProperties
。说得好,这就成功了。不过我很好奇,因为我
使用
我的
ServicesBuilder
的方式完全相同。这里有什么问题?编辑:我错过了
异常
目录。这就像ServiceException位于与当前文件夹不同的文件夹中,而解释器找不到它一样。您仍然可以使用
catch(ServiceException$e)
工作,但您必须声明一个use语句,如下所示:
use-MicrosoftAzure\Storage\Common\Exceptions\ServiceException
您的文件顶部可能有一个ServiceBuilder的use语句(
使用MicrosoftAzure\Storage\Common\ServicesBuilder;
)。不过我很好奇,因为我
使用
我的
ServicesBuilder
的方式完全相同。这里有什么问题?编辑:我错过了
异常
目录。这就像ServiceException位于与当前文件夹不同的文件夹中,而解释器找不到它一样。您仍然可以使用
catch(ServiceException$e)
工作,但您必须声明一个use语句,如下所示:
use-MicrosoftAzure\Storage\Common\Exceptions\ServiceException
您的文件顶部可能有一个ServiceBuilder的use语句(
使用MicrosoftAzure\Storage\Common\ServicesBuilder;
)。