2012-05-01 4 views
5

私はStackoverflowとJavaには比較的新しいですが、私はCで少し経験があります。 'exit()'関数を使って誤動作させた後、Cを非常にクリーンな方法で終了しました。メインの関数を終了する

JavaでSystem.exit()と同じ機能が見つかりました.C関数とは何が違うのですか?また、voidのような単純な 'return'の代わりにいつ 'System.exit()'を使うべきですか?メイン機能?参照

答えて

5

System.exit()バック


を発呼者にだけ電流メソッドから制御を返すreturn;このプログラムのためinitilized JVMを終了する

+0

これは悪いですか? main関数が失敗した場合、単純なプログラムであればJVMの終了は正常ですか? –

+0

はい通常のprograではOKですが、ほとんどの場合、取得されたすべてのリソースを実現した後にアプリケーションを終了する場所で使用されます –

+0

ありがとうございます。 –

1

System.exit()は便利ですユーザの状態でプログラムを終了する準備ができたら(すなわち、 GUIアプリケーション)。 returnは、プログラムの実行の最後のポイントに戻るために使用されます。 2つは非常に異なる操作です。

2

System.exit()は誰が呼び出しても、理由を問わずプログラムを終了します。メインのreturnmain()を終了しますが、それを呼び出すものはすべて終了しません。簡単なプログラムでは、違いはありません。メインを他の関数(パフォーマンス測定やエラー処理を行っている可能性があります)から呼び出す場合は、大変重要です。 3番目の方法は、キャッチされていないランタイム例外をスローすることです。これにより、コールスタック内の深いところからプログラムを終了させることができます。メインプログラムを呼び出して終了コードを処理して処理する外部コードを許可します。終了時には、何が間違っていたか、 2のような終了状態に反対する)。

関連する問題