- ベストアンサー
C言語でいうexit();はJavaでもありますか?
プログラミングするときよくCではexit()を使用してそこまでの処理を確かめるのによく用いてきましたが、Javaではそのようなものが存在するのですか?教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1さんの意見に異を唱えます。 普通に使っていいと思います。 そもそも、exit()がだめと言われると、じゃあどうすればいいの、という話になります。 main() メソッドを抜けても他にスレッドがあればアプリケーション自体は終了しません。すべてのスレッドを終了してあげればいいのですが、AWT等を使った場合は、プログラマが意図せずとも裏にスレッドが立ちますのでそこまで管理できません。 それから、Cと違いmain()はvoid型ですから、main()を抜けても0以外の終了ステータスを返せません。 SunのページにあるAPI仕様には、非推奨のAPIにははっきりと『推奨されていません』と、理由を添えて記述されています。 exit()の説明にはその記述がありません。 また、exit()呼び出しによる終了処理時にやりたい処理を登録しておける『シャットダウンフック』というのがありますから、勝手に終了されて困るということがないようにできます。 勝手にexit()されては困るときには、セキュリティマネージャというのを使えば、exit()を禁止することもできます。 参考URLに、System.exit() からよばれる Runtime.exit() の仕様を挙げておきます。 ところで、Cでデバッグのためにexit()を使っているのですか。 私ならそういうときはprintf()をあちこちに埋め込んで確認しますね。もしくは素直にデバッガを使います。 Javaだったらexit()ではなく例外をthrowしたほうがデバッグしやすいと思います。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
あるにはあるが・・・・。 System.exit() これを使うべきでない理由を解説したサイトがあるのでぜひ一度目を通しておいていただきたい。 君はexitをデバッグ目的で利用しているようなので、大丈夫だと思うが一応。
お礼
教えていただきありがとうございます。 今後活用していきたいと思います。