Articles of stack overflow

Comment une StackOverflowException est-elle détectée?

TL; TR Lorsque j’ai posé la question, j’ai supposé qu’un StackOverflowException est un mécanisme permettant d’empêcher les applications de s’exécuter à l’infini. Ce n’est pas vrai. Une StackOverflowException n’est pas détectée. Il est lancé lorsque la stack n’a pas la capacité d’allouer plus de mémoire. [Question originale:] Ceci est une question générale, qui peut avoir […]

Pourquoi cette instruction ne lance-t-elle pas une erreur StackOverflowError?

Je viens de voir ce morceau de code étrange dans une autre question. Je pensais qu’il en résulterait une StackOverflowError , mais cela ne … public class Node { private Object one; private Object two; public static Node NIL = new Node(Node.NIL, Node.NIL); public Node(Object one, Object two) { this.one = one; this.two = two; […]

Pourquoi un appel récursif cause-t-il StackOverflow à différentes profondeurs de stack?

J’essayais de comprendre comment les appels de queue sont gérés par le compilateur C #. Répondre Donc j’ai écrit un petit test en utilisant un appel récursif qui imprime combien de fois il est appelé avant que StackOverflowException tue le processus. class Program { static void Main(ssortingng[] args) { Rec(); } static int sz = […]

Quelles sont les causes d’une erreur java.lang.StackOverflowEr

Qu’est-ce qui peut causer une java.lang.StackOverflowError ? L’impression de stack que j’obtiens n’est pas très profonde du tout (seulement 5 méthodes).

Comment augmenter la taille de la stack Java?

J’ai posé cette question pour savoir comment augmenter la taille de la stack des appels à l’exécution dans la JVM. J’ai une réponse à cela, et j’ai aussi beaucoup de réponses et de commentaires utiles sur la manière dont Java gère la situation où une grande stack d’exécution est nécessaire. J’ai étendu ma question avec […]

Pourquoi est-il possible de récupérer une erreur StackOverflowError?

Je suis surpris de voir comment il est possible de continuer l’exécution même après qu’une StackOverflowError soit survenue en Java. Je sais que StackOverflowError est un sous-ensemble de la classe Error. La classe Error est décrite comme “une sous-classe de Throwable qui indique des problèmes graves qu’une application raisonnable ne doit pas tenter de détecter”. […]

C # intercepte une exception de dépassement de stack

J’ai reçu un appel récursif à une méthode qui lance une exception de dépassement de stack. Le premier appel est entouré d’un bloc try catch mais l’exception n’est pas interceptée. L’exception de débordement de stack se comporte-t-elle d’une manière particulière? Puis-je attraper / manipuler correctement l’exception? NB: le cas échéant: l’exception n’est pas lancée dans […]

Pourquoi cette méthode imprime 4?

Je me demandais ce qui se passe lorsque vous essayez d’attraper une StackOverflowError et que vous avez obtenu la méthode suivante: class RandomNumberGenerator { static int cnt = 0; public static void main(Ssortingng[] args) { try { main(args); } catch (StackOverflowError ignore) { System.out.println(cnt++); } } } Maintenant ma question: Pourquoi cette méthode imprime ‘4’? […]

Pourquoi #include empêche-t-il une erreur de débordement de stack ici?

Ceci est mon exemple de code: #include #include using namespace std; class MyClass { ssortingng figName; public: MyClass(const ssortingng& s) { figName = s; } const ssortingng& getName() const { return figName; } }; ostream& operator<<(ostream& ausgabe, const MyClass& f) { ausgabe << f.getName(); return ausgabe; } int main() { MyClass f1("Hello"); cout << f1; […]

Qu’est-ce qui cause réellement une erreur de dépassement de stack?

J’ai regardé partout et je ne trouve pas de réponse solide. Selon la documentation, Java jette une erreur java.lang.StackOverflowError dans les circonstances suivantes: Lancé lorsqu’un débordement de stack se produit car une application récursive trop profondément. Mais cela soulève deux questions: N’y a-t-il pas d’autres moyens pour qu’un débordement de stack se produise, pas seulement […]