2014-11-05 62 views
0

我最近开始玩亚马逊S3存储解决方案。我正在使用Java SDK,只是做一些基本的事情,比如存储/检索文件。这工作没有问题。我遇到了一些让我困惑的好奇心。Amazon S3 sdk和Eclipse - Eclipse没有识别异常?

对于AmazonS3.putObject(String,String,File)方法,javadoc意味着调用可能会抛出AmazonClientException或AmazonServiceException。因此,例如

//Note: logger is a log4j logger, myBucketName is a String, and s3 is an AmazonS3Client object. 
//All are declared and initialized prior to this point. 
public void storeToS3(String key, File f) { 
    logger.debug("Trying to store " + f.getAbsolutePath()); 
    s3.putObject(myBucketName, key, f); 

} 

我使用Eclipse作为我的IDE,我本来期望它,因为我还没有处理的putObject调用潜在的异常,开始引发错误。我不认为这是因为我有这些错误'关闭'(即告诉Eclipse不会标记它们),因为我得到了类似的错误更多'正常'的异常(IOException,FileNotFoundException等)

I在eclipse的buildpath/classpath中只使用awe-java-sdk-1.9.3.jar,而我没有安装针对S3的Eclipse专用插件。

任何人都有任何想法,为什么Eclipse不标记这?我使用的是Eclipse Juno Service Release 2.这不是一个大问题,更多的是好奇心,但是我担心如果由于这种原因可能会遗漏其他异常。我之前通过“Google”进行了一些挖掘,但没有提供任何内容。

回答

1

AmazonClientExceptionAmazonServiceException均源自RuntimeException

从Javadoc文档RuntimeException

不需要的方法,其throws子句中RuntimeException的任何 子类可能的 执行方法的过程中被抛出,但没有抓到申报。

+0

呃,我的坏。有时候最简单的事情会让我们忽视。谢谢。 – 2014-11-05 15:00:05

1

它们都延伸RuntimeException,所以你不需要去捕捉它们。这只是一个有用的提示,您可能想要捕捉它们(因为您不需要在throws子句中声明它们)。