Android doc:构造函数为SoundPool返回null?

时间:2012-11-20 18:52:43

标签: java android constructor soundpool

我知道已经在this stackoverflow主题中讨论了一般问题(构造函数永远不会返回null),但考虑到它在这个具体问题上的意义,我想知道官方的Android文档SoundPool constructor 错误然后:

  

构造。返回       SoundPool对象,如果创建失败,则返回null

我之所以这样问,是因为我们谈论的是Android的官方文档已经存在多年(在SoundPool的情况下)。

检查Android源代码,如果构造函数出错,SoundPool会抛出RuntimeException。 (2.3之前的Android甚至没有抛出异常。)也许文档试图表明如果捕获到异常,那么我打算存储对象引用的变量是否为空?在这种情况下,文档的措辞仍然很差。我错过了什么吗?

编辑:考虑到这可能不是一个内容丰富的问题​​(即使它可能有用 - 请参阅我的评论),一个简单的没有就足够了,然后线程可以关闭。我想确保我没有忽视任何事情。

1 个答案:

答案 0 :(得分:1)

  1. 构造函数不能返回null。他们可以抛出异常,但除了他们创建的对象(如果成功)之外,他们不能返回任何内容。
  2. 正如您所发现的,SoundPool可能会在其构造函数中引发异常。你可以忽略它。他们特别选择抛出RuntimeException(在2.3+上),而不是检查异常,这表明API设计者认为这是一个足以让应用程序崩溃的原因,而且不需要经常处理。
  3. 如果你真的必须处理异常,那么我只需通知用户并立即退出。
  4. 所以没有,它不能返回null。但是如果你处理异常然后,你对该对象的引用将是null,因为构造函数没有完成。