Interstage Application Server メッセージ集
目次 前ページ次ページ

第4部 ログファイルに出力されるメッセージ> 第43章 J2EE使用時に出力される例外情報> 43.2 java.langで始まる例外情報

43.2.15 その他の例外

Exception

意味

ユーザの対処

java.lang.ArithmeticException

算術計算で例外的条件が発生した場合にスローされます。たとえば、整数を「ゼロで除算」するとこのクラスのインスタンスがスローされます。

算術計算で用いている変数、定数が正しいことを確認してください。

java.lang.ArrayIndexOutOfBoundsException

不正なインデックスを使って配列がアクセスされたことを示すためにスローされます。インデックスが負または、配列のサイズ以上の場合です。

配列のインデックスが配列のサイズに収まっていることを確認してください。

java.lang.ArrayStoreException

不正な型のオブジェクトをオブジェクトの配列に格納しようとしたことを示すためにスローされます。

同じ型の配列オブジェクトを new により生成してから代入してください。

java.lang.CloneNotSupportedException

オブジェクトを複製するために Object クラスの clone メソッドが呼び出されたが、そのオブジェクトのクラスが Cloneable インタフェースを実装していないことを示すためにスローされます。

対象のクラスが Cloneable インタフェースを実装していることを確認してください。

java.lang.IllegalAccessException

アプリケーションがクラスをロードしようとしたとき、そのクラスが public でなかったり、別のパッケージに入っていたりするために、実行中のメソッドが指定されたクラスの定義にアクセスできない場合にスローされる例外です。

Exceptionの後に、「at java.lang.reflect.Field.get(Native Method)」が出力されている場合、ネイティブメッソッド内でエラーが発生している可能性があります。

ネイティブメソッド内の処理を見直してください。

java.lang.IllegalArgumentException

不正な引数、または不適切な引数をメソッドに渡したことを示すためにスローされます。

引数として受け渡した変数の値が正常な範囲、値であることを確認してください。

java.lang.IllegalMonitorStateException

所定のモニターを持たないスレッドがオブジェクトのモニターで待つことを試みたこと、あるいはほかのスレッドが所定のモニターを持たずにオブジェクトのモニターで待つことを通知したことを示すためにスローされます。

wait() や notify() が、synchronized () {...} のブロックの内部(あるいは synchronized がつけられたメソッドの内部)外で使おうとしていないか確認してください。このような場合にスローされます。waitメソッドに関する使用法は、Java Tutorialが参考になります。

java.lang.IllegalThreadStateException

要求されたオペレーションに対してスレッドの状態が不適切であることを示すためにスローされます。

スレッドが「新規のスレッド」状態で、システム資源がまだ割り当てられていない状態で start() あるいは stop() に加えて他のメソッドを呼び出していないか確認してください。また、スレッドが停止していない状態で start メソッドを呼び出していないか、処理を確認してください。

java.lang.IndexOutOfBoundsException

ある種のインデックス (配列、文字列、ベクタなど) が範囲外であることを示すためにスローされます。

インデックスが配列、文字列、ベクタなどのサイズに収まっていることを確認してください。

java.lang.InstantiationException

アプリケーションが Class クラスの newInstance メソッドを使ってクラスのインスタンスを生成しようとしたときに、クラスがインタフェースまたは abstract クラスであるために指定されたオブジェクトのインスタンスを生成できない場合にスローされます。

インタフェースや、abstruct クラスではなく、実装されているクラスを使用してください。

java.lang.InterruptedException

あるスレッドが長い間の待ち状態、休止状態、または一時停止の状態であるとき、他のスレッドが Thread クラスの interrupt メソッドを使ってこの状態に割り込みをかけた場合にスローされます。

他スレッドから割り込みを受けたことを示しています。例外ではありますが、タイムアウトの処理などに使われることもあり、必ずしも問題が発生しているとは限りません。InterruptException を catch したら、アプリケーションのロジックに応じて処理を行うようにします。

java.lang.NegativeArraySizeException

負のサイズを持った配列をアプリケーションが作成しようとした場合にスローされます。

サイズに使っている変数、定数が正しいか確認してください。

java.lang.RuntimeException

RuntimeException は、Java Virtual Machine の通常の処理でスローすることができる各種の例外のスーパークラスです。

Java VMや、ミドルウエアがスローする例外です。通常は、そのサブクラスがスローされます。getMessage() や、printStackTrace() メソッドを使用して原因を調査してください。サーバアプリケーションでは、これらをログに出力することをおすすめします。

java.lang.SecurityException

セキュリティマネージャによってスローされ、セキュリティ違反を示します。

アプリケーションが行おうとしている処理が設定により許されていないことを示します。ポリシーファイルによりこれらの設定は変更できます。アプリケーションの運用にかかわる問題ですので、システム管理者が適切なポリシーを設定する必要があります。

java.lang.StringIndexOutOfBoundsException

String メソッドによりスローされ、インデックスが負または文字列のサイズより大きいことを示します。charAt などのいくつかのメソッドでは、インデックスが文字列のサイズと等しい場合にも、この例外がスローされます。

インデックスが文字列のサイズに収まっていることを確認してください。

Error

意味

ユーザの対処

java.lang.AbstractMethodError

アプリケーションが abstract メソッドを呼び出そうとするとき、スローされます。 通常、コンパイラがこのエラーをキャッチします。現在実行中のメソッドを最後にコンパイルしたあとで、あるクラスの定義を変更して互換性がなくなるときのみ、実行時にこのエラーが発生します。

アプリケーション全体をリコンパイルしてください。コンパイルによりエラーが出力された場合は、そのメッセージにしたがってください。

java.lang.AssertionError

宣言が失敗したことを示すためにスローされます。

Assert処理を確認してください。

java.lang.ClassCircularityError

クラスの初期化時にループが見つかった場合にスローされます。

クラスローダ(もしくはその延長)で、初期化しようとしたクラスを、再び初期化しようとする場合に発生します。独自のクラスローダを使用している場合、その処理を見直してください。スタックトレースの解析が有効です。

java.lang.ClassFormatError

Java 仮想マシンがクラスファイルを読み込もうとして、ファイルが壊れていると判断した場合、またはクラスファイルとして解釈できない場合にスローされます。

クラスファイルが壊れていないか確認してください。

java.lang.Error

Error は Throwable のサブクラスで、通常のアプリケーションであればキャッチすべきではない重大な問題を示します。そうしたエラーの大部分は異常な状態です。ThreadDeath エラーは「正常」な状態ですが、ほとんどのアプリケーションではキャッチすべきではないので、やはり Error のサブクラスの 1 つです。

意味に記述されたとおりです、スタックトレースを参照して原因を調査してください。

java.lang.IllegalAccessError

アクセスできないフィールドへのアクセスや変更、あるいはアクセスできないメソッドの呼出しをアプリケーションが試みた場合にスローされます。

通常、このエラーはコンパイラによって検出されます。一部のクラスだけ別途コンパイルした場合などに発生します。アプリケーション全体をリコンパイルしてください。コンパイルによりエラーが出力された場合は、そのメッセージにしたがってください。

java.lang.IncompatibleClassChangeError

クラス定義に互換性のない変更があった場合にスローされます。現在実行中のメソッドが依存しているクラスの定義が、実行開始後に変更されています。

正しいクラスが動作しているか確認してください。

java.lang.InstantiationError

アプリケーションが Java の new 構文を使って abstract クラスやインタフェースのインスタンスを生成しようとしたときにスローされます。

該当箇所のソースを見直してください。

java.lang.InternalError

Java Virtual Machine 内で予期しない内部エラーが発生したことを示すためにスローされます。

意味に記載されたとおりです。本障害はJava Virtual Machine自身の故障の可能性が高いです。最新の修正が適用されていない場合、修正を適用してください。そのうえで再現性がある場合、富士通技術員に連絡してください。

java.lang.LinkageError

LinkageError のサブクラスは、あるクラスが別のクラスに依存関係がある場合に、前者のクラスをコンパイルしたあと、後者のクラスへの変更によって互換性が失われたことを示します。

一部のクラスだけ別途コンパイルした場合などに発生します。アプリケーション全体をリコンパイルしてください。コンパイルによりエラーが出力された場合は、そのメッセージにしたがってください。

java.lang.NoSuchFieldError

アプリケーションがオブジェクトの指定のフィールドへアクセス、または変更しようとして、オブジェクトにそのフィールドがないときにスローされます。

一部のクラスだけ別途コンパイルした場合などに発生します。アプリケーション全体をリコンパイルしてください。コンパイルによりエラーが出力された場合は、そのメッセージにしたがってください。

java.lang.StackOverflowError

アプリケーションでの再帰の回数が多すぎてスタックオーバーフローが起こる場合にスローされます。

再帰処理を見直してください。また、必要な場合は、-Xss オプションを使用して、スタックサイズを大きくしてください。

スタックのデフォルト値は512Kbyteです。

java.lang.ThreadDeath

ThreadDeath のインスタンスは、Thread クラスの引数なしの stop メソッドが呼び出されると、対象となるスレッド内でスローされます。

Threadクラスのstop メソッドは推奨されないメソッドです。Thread クラスの interrupt メソッドなどを使用し、処理を書き換えてください。

java.lang.UnknownError

未知であるが重大な例外が Java Virtual Machine で発生した場合にスローされます。

再現性がある場合、富士通技術員に連絡してください。

java.lang.UnsupportedClassVersionError

Java Virtual Machine が、クラスファイルの読み込み中に、そのファイルのメジャーバージョン番号とマイナーバージョン番号がサポートされていないと判定した場合にスローされます。

Javaは基本的にアッパーコンパチブルですが、後のバージョンのJDKでコンパイルしたものの実行は保証されません。実行でお使いになるJavaと同じバージョンでコンパイルされているか確認してください。

java.lang.VerifyError

クラスファイルが適切に形成されていても、ある種の内部矛盾またはセキュリティ問題があることを「verifier」が検出すると、スローされます。

問題の発生したクラスをリコンパイルしてください。また、メソッドトレース機能など、Javaのクラスに変更を加えるものを利用している場合、その機能の利用を停止して比較してみてください。

java.lang.VirtualMachineError

Java Virtual Machine が壊れているか、または動作を継続するのに必要なリソースが足りなくなったことを示すためにスローされます。

リソース(実メモリ、仮想メモリ)を増やし、それでも再現性がある場合、富士通技術員に連絡してください。


目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005