最終的にブロックは常にJavaで実行されますか?
はい、JVMのクラッシュまたはSystem.exit()の呼び出しのいずれかが原因でプログラムが異常終了しない限り、finallyブロックは常に実行されます。
- 例外が発生したかどうかに関係なく、finallyブロックは常に実行されます。
- ファイルやDB接続を閉じるなどの例外が発生した場合は、finallyブロックを使用してコードをクリーンアップします。
- system.exit()などのステートメントがtryブロックに書き込まれると、プログラムが自動的に終了し、finallyブロックが実行されない場合があるため、finallyブロックが常に実行されるとは言えません。
- tryブロックの電源障害とデッドロック状態のためにマシンがシャットダウンしたときにJavaプロセスがタスクマネージャーまたはコンソールから強制的に強制終了されたときにJVMがメモリ不足になるなど、他の条件のためにfinallyブロックは実行されません。
例1
public class FinallyBlock { public static void main(String args[]){ try { int a=10,b=30; int c = b/a; System.out.println(c); } catch(ArithmeticException ae){ System.out.println(ae); } finally { System.out.println("finally block is always executed"); } } }
上記の例では、例外が発生したかどうかにかかわらず、finallyブロックは常に実行されます。
出力
3 finally block is always executed
例2
public class FinallyBlock { public static void main(String args[]) { try { System.out.println("I am in try block"); System.exit(1); } catch(Exception ex){ ex.printStackTrace(); } finally { System.out.println("I am in finally block"); } } }
上記の例では、tryブロックのSystem.exit(1)条件が原因で、finallyブロックは実行されません。
出力
I am in try block
-
Java Get Current Working Directory
Javaで現在の作業ディレクトリを取得するにはどうすればよいですか?現在の作業ディレクトリとは、現在のJavaプロジェクトのルートフォルダを意味します。 次のシステムプロパティ関数を使用して、Javaで現在の作業ディレクトリを取得できます。 String cwd = System.getProperty(user.dir); Javaの例で現在の作業ディレクトリを取得する public class CurrentWorkingDirectory { public static void main (String args[]) { String cwd = Sy
-
Javaは現在の日時を取得します
Javaで現在の日付と時刻を取得するにはどうすればよいですか?このチュートリアルでは、Java8の3つの異なるメソッドを見ていきます。 日付と時刻の表示に使用されるクラスはLocalDateです。 、LocalTime 、LocalDateTime 。 現在の日付を取得 LocalDate クラスは日付を表すために使用されます。 GetCurrentDate.java import java.time.LocalDate; public class GetCurrentDate { public static void main(String[] args) {