The exception of too much recursion or maximum call stack size exceeded occurs when there are many function calls, or even if a function is missing a base case.
Output message:
Error: Out of stack space (Edge) InternalError: too much recursion (Firefox) RangeError: Maximum call stack size exceeded (Chrome)
Error Type:
InternalError
A recursive function is a function that calls itself repeatedly. When a condition is met, the function stops calling itself. This is called a base case. If somehow the condition does not meet then the function continues calling itself and the error occurs.
Example 1: This example works perfectly, without errors. Because the stopping condition is when x >= 5.
Javascript
function recursion(x) { Â
    // Base case     if (x >= 5)         return ;     recursion(x + 1); // The recursive call } Â
function Geeks() { Â Â Â Â try { Â Â Â Â Â Â Â Â recursion(0); Â Â Â Â Â Â Â Â console.log( "Too much " Â Â Â Â Â Â Â Â Â Â Â Â + "recursion error not occurred" ); Â Â Â Â } catch (e) { Â Â Â Â Â Â Â Â console.log( "Too much " Â Â Â Â Â Â Â Â Â Â Â Â + "recursion error occurred" ); Â Â Â Â } } Â
Geeks(); |
Too much recursion error not occurred
Example 2: In this example, the stopping condition is when x >= 1000000000000. This is a large value, so the error occurred.
Javascript
function recursion(x) { Â
    // Base case     if (x >= 1000000000000)         return ;     recursion(x + 1); // The recursive call } function Geeks() {     try {         recursion(0);         console.log( "Too much recursion"             + " error not occurred" );     } catch (e) {         console.log( "Too much recursion"             + " error occurred" );     } } Â
Geeks(); |
Too much recursion error occurred