広告

Java : StackOverflowError - API使用例

StackOverflowError (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。


概要

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

StackOverflowError は、再帰的なメソッドの呼び出しが延々と続く場合に発生するエラーです。

コード例では StackOverflowError をキャッチしていますが、基本的にはエラーをキャッチするのはおすすめしません。
そのあたりの詳しいことは下記の記事にて解説しています。

もし興味がありましたら、そちらもご参照いただけたら幸いです。

class Sample {
    void recursion() {
        System.out.println("Recursion!");
        recursion();
    }
}

final var sample = new Sample();

try {
    sample.recursion();
} catch (StackOverflowError e) {
    System.out.println(e);
}

// 結果
// ↓
//Recursion!
//Recursion!
//Recursion!
// ・
// ・
// ・
//java.lang.StackOverflowError

コンストラクタ

StackOverflowError ()

詳細メッセージなしでStackOverflowErrorを構築します。

final var e = new StackOverflowError();
System.out.println(e); // java.lang.StackOverflowError: abcd

StackOverflowError (String s)

指定された詳細メッセージを持つStackOverflowErrorを構築します。

final var e = new StackOverflowError("abcd");
System.out.println(e); // java.lang.StackOverflowError: abcd
System.out.println(e.getMessage()); // abcd

Throwableで宣言されたメソッド

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

Java API 使用例 : Throwable」をご参照ください。


関連記事

ページの先頭へ