3

一般的な問題はこのstackoverflowトピックですでに説明されていることを知っています(コンストラクターは決して戻りません)が、この具体的な問題におけるその重要性を考慮して、コンストラクターの公式Androidドキュメントが間違ってnullいるかどうかを知りたいです:SoundPool

コンストラクタ。SoundPoolオブジェクトを返します。作成に失敗した場合は、nullを返します。

何年も前から公開されているAndroidの公式ドキュメント(の場合SoundPool)について話しているので、これを求めています。

Androidのソースコードを確認すると、コンストラクターでエラーが発生した場合にがSoundPoolスローされます。RuntimeException(2.3より前のAndroidは例外をスローしませんでした。)おそらく、ドキュメントは、例外がキャッチされた場合、オブジェクト参照を格納しようとした変数がnullのままであることを表現しようとしていますか?この場合、ドキュメントの表現はまだ非常に貧弱です。私は何かが足りないのですか?

編集:これはあまりコンテンツが豊富な質問ではないかもしれないことを考えると(それは役に立つかもしれませんが-私のコメントを参照してください)、単純な「はい」または「いいえ」で十分であり、スレッドを閉じることができます。何も見逃していないことを確認したい。

4

1 に答える 1

1
  1. コンストラクターはnullを返すことはできません。例外をスローすることはできますが、成功した場合に作成したオブジェクト以外は返すことができません。
  2. お気づきのとおり、SoundPoolコンストラクターで例外がスローされる場合があります。あなたはそれを無視することができます。RuntimeException彼らは、API設計者がこれをアプリをクラッシュさせるのに十分な理由であり、日常的に処理する必要がないことを示すチェックされた例外とは対照的に、(2.3以降で)をスローすることを特に選択しました。
  3. 本当に例外を処理する必要がある場合は、ユーザーに通知してすぐに終了します。

したがって、いいえ、nullを返すことはできません。ただし、例外を処理してはいの場合、オブジェクトへの参照はnull、コンストラクターが完了しなかったためになります。

于 2012-11-20T22:27:35.467 に答える