public static void main(String[] args) throws IllegalArgumentException {
if (args[0].matches(".*\\w.*")) {
throw new IllegalArgumentException("Can't input characters!");
}
String input = insertSpaces(args[0]);
args = input.split("\\s+");
printAnswer(calculate(args),args);
}
上記のコードでは、メインメソッドはIllegalArgumentExceptionをスローします。 mainメソッドからスローされた例外を捕捉するにはどうすればよいですか?私が尋ねる理由、私が間違っていたら私を修正してください、私の理解は、メソッドが例外をスローすると、メソッドの呼び出し側が例外をキャッチする責任があるからです。この場合のmainメソッドはそれを呼び出す他のメソッドがないので、例外を捕捉する方法を理解できません。私は、JVMがこのメソッドを呼び出すために裏で働いていると推測していますが、JVMをどのように実行させるのでしょうか。可能であれば、説明と一緒にCODEを提供してください。それ以外の理由を説明してください。javaのmainメソッドによってスローされた例外をどのように捕捉しますか?
メインメソッドから例外をスローしません。メインから処理するか、単にプログラムを終了します。 –
'main'が例外をスローすると、JVMはデフォルトでそれをキャッチし、スタックトレースを出力してシャットダウンします。 –
私は理解するかどうか見てみましょう。無効な入力は最終的に私のプログラムをシャットダウンするので、私のmainメソッドから例外をスローすることは、手動でそれをキャッチする方法がないので、それを早く終了させる方法です。 –