Android - 尝试/捕获问题

时间:2011-05-06 19:48:16

标签: android

我在一个返回值的函数中有一个try / catch。如果一切顺利,try块中的return语句可以正常工作。但是,如果这是一个例外,我该怎么办?什么我在捕获中返回并最终阻止?返回语句必须存在或代码不能编译。

编辑:在1函数中我连接到URL,读取文件,并返回一个字符串。在另一个功能中,我从互联网上打开一个图像并返回一个位图。所以在这两种情况下,我应该在catch的return语句中有什么,最后是块?

3 个答案:

答案 0 :(得分:7)

以下其中一项:

  • 返回一个特殊值,指示调用代码的错误。
  • 返回默认值(具体取决于您的上下文,可能不是很好)。
  • 不要捕获异常,而是在标题中添加throws
  • 捕获异常,进行清理,然后重新抛出异常。

一般来说,没有逃避功能可能出错的事实。必须通知调用代码,或者函数必须有效地吞下错误并假装没有发生任何不良事件;这包括返回一些东西。细节取决于您的背景......

答案 1 :(得分:1)

您返回的值应该能够表示错误,例如,null应该表示该函数不起作用。因此,在catch块中,函数将返回null,例如。在finally块中,您应该释放您使用的任何资源(例如,关闭您打开的所有文件等)。

你将这些东西放在finally块中,因为它确保它会在某个时候运行,即使catch块中的代码抛出未处理的异常或任何东西。如果函数正常工作,它也会运行。

答案 2 :(得分:1)

在try / catch块之外使用return null;此语句。如果事情有效,你的try块将会执行并返回,如果由于异常而失败,它将被捕获并且你会看到错误。