もう少しコンテキスト:ネットワーク接続をリスンするリスナークラスがあります。そのlisten
メソッドを2回呼び出してはいけません。私はそれがあるときに何を投げるべきですか?一度しか呼び出されない関数をもう一度呼び出すと、どのような引数を投げるべきですか?
2
A
答えて
5
事前定義された例外を使用する場合は、オブジェクトがすでにlistening
状態にあるため、IllegalStateException
をスローすることがあります。
ただし、これを行うと、listen
が既に呼び出されているかどうかをクライアントが知る方法があるはずです。例えば。方法はisListening()
です。
これはIO問題であるため、IOExceptionから拡張される可能性のある独自の例外を作成することもできます。ネットワークリソースが最初のリッスンですでに使用されているため、複数回試聴する試みが失敗する可能性があります。 (ソケットバインディングに似ています)
2
この場合、私はIllegalStateException
を投げます。これは通常、ユーザーがオブジェクトの現在の状態で合法でないものを作成しようとしたことを示すために使用されます。
3
ライブラリのクライアントが間違って使用している場合にのみ発生する論理エラーですので、スローする例外はチェックされていない例外(例:java.lang.RuntimeException
またはその派生)である必要があります。チェック例外に反対します。
「方法が違法または不適切なときに呼び出された信号を」しかし、それはまた、作られた、独自のカスタムで例外が考えられます。
java.lang.IllegalStateException
は、その目的のために意図されます例外階層。
関連する問題
- 1. ファクトリ関数を一度呼び出す
- 2. jqueryタイムアウト関数を1回呼び出した後でもう一度呼び出されていません
- 3. BluetoothGattCallBack関数onCharacteristicReadは一度だけ呼び出されます
- 4. フレームごとに呼び出す必要があり、一度しか呼び出せないOpenGL関数をどのように知っていますか?
- 5. この関数をもう一度呼び出すと、子divが再び作成されます。
- 6. スカラーの引数として "by-name"を呼び出す関数をどのように呼び出すか
- 7. JS:.apply(null、arguments) - 私の関数は一度呼び出され、console.logは何度も呼び出されたのはなぜですか?
- 8. 関数の引数が関数呼び出しの一部であるかどうか調べる
- 9. スレッドごとに関数を一度呼び出す方法
- 10. "viewDidLayoutSubviews"に一度しか呼び出されないのと同じですか?
- 11. jqueryコマンドチェーンのサブコンテキストでjqueryをもう一度呼び出す
- 12. 何度も何度も関数を呼び出す
- 13. ノードエクスプレスで同じ要求をもう一度呼び出す
- 14. 引数でデバウンス関数呼び出しを呼び出す
- 15. ondrawの呼び出し後にキャンバスをリセットしてから、アンドロイドでもう一度呼び出す
- 16. Android - ネイティブなグローバルオブジェクトデストラクタは一度も呼び出されません
- 17. 一度に1つの関数だけを呼び出すPHP
- 18. 子クラスからの仮想関数が親関数を一度呼び出す
- 19. 呼び出しを呼び出すとパラメータの数が一致しない
- 20. timer.cancel()メソッドを呼び出すと、TimerTaskがもう一度実行されます
- 21. 関数を一度だけ呼び出す
- 22. アプリアップデート後にdidFinishLaunchingWithOptionsをもう一度呼び出す方法
- 23. ngrx:reducers関数が呼び出されたときにどのように呼び出されますか?
- 24. PDO :: fetchAll()をもう一度呼び出すことは可能ですか?
- 25. 1つの引数で呼び出されるjavascript関数は、さまざまな引数で関数を呼び出すことができますか?
- 26. 'elsif'ブランチで関数を何度も呼び出さないようにする方法はありますか?
- 27. メソッド/関数を2回呼び出す変数に保存して一度呼び出す
- 28. 一致する関数呼び出し
- 29. すべてのノードでjQuery関数をDatatableから一度に呼び出すことはできますか?
- 30. アクティビティのライフサイクルをもう一度:onstartが呼び出されないようにするには、