我正在尝试使用以下代码使用流 API 获取 S3 对象的文件大小:
try{
$fileSize = filesize("s3://".$bucket."/".$filename);
}catch(Aws\S3\Exception\NoSuchKeyException $e) {
return false;
}
如果该项不存在,我会得到以下错误:
[2015年10月13日星期二23:03:32][错误][客户端54.225.205.152]PHP警告:找不到文件或目录:s3://mybucket/myfile.jpg在/var/www/vendor/Aws/Aws-SDK-PHP/src/Aws/S3/stream wrapper . PHP的第774行
【2015年10月13日星期二23:03:32】【错误】【客户端54.225.205.152】PHP警告:filesize():s3://mybucket/myfile的stat失败。jpg位于/var/www/api-dev/awsFunc中。第278行上的php
[2015年10月13日星期二23:03:32][错误][客户端54.225.205.152]PHP致命错误:未捕获AWS \ S3 \异常\ NoSuchKey异常:AWS错误代码:NoSuchKey,状态代码:404,AWS请求ID: 4A6F1372301D02F7,Aws错误类型:客户端,Aws错误消息:指定的键不存在。,用户代理:Aws-SDK-PHP 2/2 . 8 . 21 Guzzle/3 . 9 . 3 curl/7 . 22 . 0 PHP/5 . 3 . 10-1 Ubuntu 3 . 19 \ n在/var/www/vendor/Aws/Aws-SDK-PHP/src/Aws/Common/Exception/namespace Exception factory . PHP的第91行抛出
因此,尽管我明确地试图捕捉Aws \ S3 \ Exception \ NoSuchKeyException,但系统还是抛出了它。
更新:
我发现了错误。例外应该命名空间应该以' \ '开头,而不是Aws,如下所示:
try{
$fileSize = filesize("s3://".$bucket."/".$filename);
}catch(\Aws\S3\Exception\NoSuchKeyException $e) {
return false;
}
我不知道为什么当我使用
命名空间时,命名空间不会以“\”开头,但例外情况下它需要它。我想有人解释一下。
好的,所以这是对我有用的东西:
use Aws\S3\Exception\S3Exception as S3;
try {
$podcast = $this->uploadFileToS3($request);
} catch(S3 $e) {
return $e->getMessage();
}
就我而言,我将消息传递给会话闪存,如下所示:
return redirect('dashboard/episode/create')->with('status', $e->getMessage());
所以这一切都取决于你想如何使用它。
try {
$fileSize = filesize("s3://".$bucket."/".$filename);
} catch(S3 $e) {
return $e->getMessage();
}
祝你好运
所以 我有一个函数,有一个回调,所以我把它包装在一个挂起函数使用,但当它错误了,它是崩溃整个应用程序。 这里有一个概念是正在发生的事情。 2022-03-04 16:09:45.410 19289-19438/in.app.androidE/AndreidRuntime: FATAL EXCEPTION: DefaultDispatcher-Worers-3进程:in.app.android,PI
我通过激发Baeldung在Spring Security页面上的防止暴力身份验证尝试,为我的登录服务实现了暴力阻止机制,如下所示: 当用户未经验证时,LoginService抛出InvalidCredentialException(),然后我试图在AuthenticationFailureListener类中捕获此异常: 当出现错误时,则登录测试服务。将调用loginFailed()方法。然而,
对于我的RESTAPI,我使用jersey和ExceptionMapper来捕获全局异常。我的应用程序抛出的所有异常都运行良好,但我无法捕获jackson抛出的异常。 例如,我的一个endpoint接受包含枚举的对象。如果请求中的Json有一个不在枚举jersey中的值,则抛出此异常 尽管我创造了这个映射器 代码永远不会到达这个映射器。 为了捕捉这些异常,我们需要做些什么吗? 编辑说明:我尝试过让
我无法在Spring中捕获异步方法抛出的异常。我已经编写了一个未捕获的异常处理程序来捕获,但没有成功。该应用程序将启用启动任意数量的永远运行的异步作业。我认为我的异步方法需要返回Future,以便我可以将其存储在hashmap中并检查其状态或停止作业。我也可以通过存储它来获取所有正在运行的作业。我认为我不能使用get method of Future,因为如果输入正确,它会阻塞,我的作业将永远运行
是否有可能在Delphi中构建一个代码片段,使假设的EChuckNorrisException无法捕获? 对于Java编程语言,我刚刚发现在Uncatchable ChuckNorriseException中,答案是肯定的
问题内容: 我正在尝试捕获“ android.database.sqlite.SQLiteException:错误代码5:数据库已锁定”异常,并带有: 由于某些原因,我仍然会收到错误消息,并且LogCat中没有显示“ caught”。我尝试捕获一般的“异常”,但这仍然行不通。怎么了? 更新, 我发现了这个问题,这确实很奇怪:由于某种原因,将goto10声明的db.insert()更改为db.ins