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 […]
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; […]
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 = […]
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).
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 […]
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”. […]
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 […]
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’? […]
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; […]
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 […]