我在一个返回值的函数中有一个try/catch。如果一切顺利,try块中的return语句就可以正常工作。但是如果有异常,我该怎么办呢?在catch和and块中我应该返回什么?返回语句必须在那里,否则代码无法编译。
编辑:在一个函数中,我连接到一个URL,读取一个文件,然后返回一个字符串。在另一个函数中,我从互联网上打开一张图片并返回一个位图。所以在这两种情况下,我应该在catch和finally块的return语句中有什么?
发布于 2011-05-07 03:53:56
您返回的值应该能够表示错误,例如,null应该表示函数不工作。因此,在catch块中,该函数将返回null,例如。在finally块中,您应该释放您使用的任何资源(例如,关闭您打开的任何文件,等等)。
将这些东西放在finally块中是因为它可以保证在某个时候会运行,即使catch块中的代码抛出一个未处理的异常或任何东西。而且,如果函数按所需的方式工作,它也会运行。
发布于 2011-05-07 03:56:24
以下选项之一:
throws添加到标头。一般来说,函数可能会出错,这是无法回避的事实。必须通知调用代码这一点,或者函数必须有效地接受错误并假装没有发生任何糟糕的事情;这涉及到返回一些东西。具体情况取决于您的上下文...
发布于 2011-05-07 03:54:42
在try/catch块外部使用return null; this语句。如果一切正常,你的try代码块就会执行并返回,如果因为异常而失败,它就会被捕获,你会看到错误。
https://stackoverflow.com/questions/5916318
复制相似问题