3

我知道这个stackoverflow主题已经讨论了一般问题(构造函数从不返回null),但是考虑到它在这个具体问题中的意义,我想知道SoundPool 构造函数的官方Android文档是否有错误

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

我问这个是因为我们谈论的不亚于已经存在多年的 Android 官方文档(以防万一SoundPool)。

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

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

4

1 回答 1

1
  1. 构造函数不能返回 null。他们可以抛出异常,但如果成功,他们只能返回他们创建的对象。
  2. 如您所见,SoundPool可能会在其构造函数中引发异常。你可以忽略它。他们特别选择抛出RuntimeException(在 2.3+ 上)而不是检查异常,这表明 API 设计人员认为这是使应用程序崩溃的充分理由,并且不需要常规处理。
  3. 如果您真的必须处理异常,那么我只需通知用户并立即退出。

所以,它不能返回null。但是如果你处理异常然后,你对对象的引用将是null因为构造函数没有完成。

于 2012-11-20T22:27:35.467 回答