9

Java プログラムを実行するためにいくつかの前提条件が存在するかどうかを確認したい場合、何が最適ですか?
行う: System.exit(1);

または、メインスレッドを終了するためにスローしRuntimeExceptionますか? main(他のスレッドはまだ実行されていません)

4

6 に答える 6

10

理想的には、スレッドを正常に終了します。System.exit(1)も動作しますが、実行中の処理を停止し、実行中の処理を終了して終了する (つまり、最後までメソッドを実行する) 必要があることをスレッドが通知された方がよいでしょう。それは明らかにあなたのデザインに依存します。

をスローするのRuntimeExceptionはあまりにも無礼に思え、実際には望んでいない行動につながる可能性があります。

于 2013-02-13T15:05:06.300 に答える
2

スタック トレースが必要な場合は、を使用してください。RuntimeExceptionそうでない場合System.exit(1)は、よりクリーンです。

于 2013-02-13T15:06:25.510 に答える
2

exitプログラミング フローでエラーをキャッチし、それに応じてエラーを処理するために例外が使用されるため、呼び出したほうがよいでしょう。

ユーザーの観点から見ると、アプリケーションを問題に出力してから適切に閉じることは、スタック トレースや、ユーザーが理解する必要のないSystem.errような他のコード表記を見るよりもはるかに直感的です。EXCEPTION

于 2013-02-13T15:05:42.523 に答える
1

あなたが投稿したものよりも多くの情報を持っていないので、次のようにします:

public static void main(String[] args) {
    boolean precondition = ... // determine your precondition here
    if (precondition) {
        // run program
    } else {
        System.out.println("Preconditions not satisfied.");
    }
}
于 2013-02-13T15:04:51.447 に答える
1

どちらでもよいのですが、誤解を招く可能性があるためSystem.exit()、を使用することをお勧めします。RuntimeException

于 2013-02-13T15:07:46.563 に答える
0

強制退出は絶対にしないでください。アプリケーションがメソッドを使い果たし、自動的に閉じることができるように、ランタイム メソッドをプログラムします。構造適用の前にグラフを描くことをお勧めします。

于 2015-01-19T20:56:41.503 に答える