【再起関数】
再帰を使ったプログラムで、スタックオーバーフローエラーが発生するような状況下でも、
再起(立ち直る)してそのまま何事もなかったかのように処理続行させる関数のこと。
Javaによる再起関数の実装例
public static void main(String... args){
int input = 1000000000;
System.out.println( String.format("`%s`の階乗は`%s`です", input, kaijou(input)) );
}
private static int kaijou(int i){
try {
if (i == 1)
return i;
return kaijou(i - 1) * i;
}catch(StackOverflowError e){
//エラーが起きているが、無視して立ち直る
return 0;
}
}
実行結果
`1000000000`の階乗は`0`です