StackOverflowException
-
05-07-2019 - |
Pergunta
Com a StackOverflowException são as condições para ser jogado hardcoded ou dependente da máquina o código está sendo executado em?
Estou quase certo o último, mas falharam em minhas pesquisas e não faça perguntas suficientes aqui.
Solução
A partir a documentação :
... é lançada quando a pilha de execução excede porque ele contém muitas chamadas de método aninhada.
Uma vez que o tamanho da pilha é dependente de arquitetura e pode até ser substituído em uma máquina, sim, este valor não é codificado, embora seja geralmente bastante estática no Windows. Se bem me lembro, é 1 MB de tamanho por padrão.
Outras dicas
Apesar de não ser uma combinação perfeita para a sua pergunta, veja também:
Como você muda o tamanho padrão pilha para conseguiu executable.net
quadros de pilha irá variar dependendo do modo de endereçamento do seu sistema operacional. Acredito x64 usos ligeiramente quadros de pilha maiores. Tenha em mente que o espaço de processo é capaz de crescer muito mais do que em x86, de modo geral, você deve ser capaz de configurar sua pilha para aceitar mais quadros em x64, se RAM e tamanho do arquivo de swap não são um problema.
A exceção que é lançada quando a pilha de execução excede porque ele contém muitas chamadas de método aninhadas. Esta classe não pode ser herdada . MSDN
Framework 4.0 A exceção que é lançada quando a pilha de execução excede porque ele contém 7573 chamadas de método aninhadas. Esta classe não pode ser herdada.
Framework 2.0 A exceção que é lançada quando a pilha de execução excede porque ele contém 7038 chamadas de método aninhadas. Esta classe não pode ser herdada.