FJVMを使用してJavaアプリケーションを実行している場合、以下の例外については、実行性能の観点から、Java VMの動的コンパイル処理が行なう最適化処理により例外発生時のスタックトレース出力処理が省略され、例外発生時のスタックトレースが出力されない場合があります(例外発生時のスタックトレース出力抑止)。
JDK/JRE 6、7のFJVMの場合
java.lang.NullPointerException
java.lang.ArithmeticException
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayStoreException
java.lang.ClassCastException
動的コンパイル処理により例外発生時のスタックトレース出力処理が省略されないようにする場合は、“-XX:-OmitStackTraceInFastThrow”オプションを指定します。
ただし該当する例外の発生頻度が高い場合に当該オプションを指定し、例外発生時のスタックトレース出力を行なった場合は、Javaアプリケーションの実行性能が低下する場合があります。
当該オプションを指定する場合は、性能検証を行った上で使用するか、開発作業において例外が発生している場所を特定したい場合においてだけ使用してください。
“-XX:-OmitStackTraceInFastThrow”オプションはFJVM固有機能です。
インタプリタで実行しているJavaメソッド内で上記例外が発生した場合は、当該オプションの指定に関係なく、例外発生時のスタックトレースが出力されます。