NIE TA STRONA INTERNETOWA! Użyj tego tagu dla błędu spowodowanego przez wypchnięcie zbyt wielu elementów do stosu wywołań. Jeśli masz pytanie dotyczące tej witryny, przejdź do https://meta.stackoverflow.com
Spójrz na następujące dwie metody: public static void foo() { try { foo(); } finally { foo(); } } public static void bar() { bar(); } Uruchamianie bar()wyraźnie powoduje StackOverflowError, ale foo()nie działa (program wydaje się działać bez końca). Dlaczego?
Mam następujący fragment kodu, który nie działa z następującym błędem: RuntimeError: przekroczona maksymalna głębokość rekurencji Próbowałem przepisać to, aby umożliwić optymalizację rekurencji ogona (TCO). Uważam, że ten kod powinien był się udać, gdyby miało miejsce TCO. def trisum(n, csum): if n == 0: return csum else: return trisum(n - 1, …
Zadałem to pytanie, aby dowiedzieć się, jak zwiększyć rozmiar stosu wywołań środowiska wykonawczego w JVM. Mam odpowiedź na to pytanie, a także wiele przydatnych odpowiedzi i komentarzy dotyczących tego, jak Java radzi sobie z sytuacją, w której potrzebny jest duży stos środowiska wykonawczego. Moje pytanie rozszerzyłem o podsumowanie odpowiedzi. Początkowo …
Mam rekurencyjne wywołanie metody, która zgłasza wyjątek przepełnienia stosu. Pierwsze wywołanie jest otoczone blokiem try catch, ale wyjątek nie jest przechwytywany. Czy wyjątek przepełnienia stosu zachowuje się w specjalny sposób? Czy mogę prawidłowo złapać / obsłużyć wyjątek? Nie wiem, czy to istotne, ale dodatkowe informacje: wyjątek nie jest zgłaszany w …
W przeglądarce Chrome pojawia się błąd „Uncaught RangeError: maksymalny rozmiar stosu wywołań przekroczony”. oto moja funkcja jQuery $('td').click(function () { if ($(this).context.id != null && $(this).context.id != '') { foo($('#docId').val(), $(this).attr('id')); } return false; }); Zwróć uwagę, że strona zawiera dziesiątki tysięcy komórek. Generalnie jednak przepełnienie stosu kojarzy mi się …
Zastanawiałem się, co się stanie, gdy spróbujesz złapać StackOverflowError i wymyśliłem następującą metodę: class RandomNumberGenerator { static int cnt = 0; public static void main(String[] args) { try { main(args); } catch (StackOverflowError ignore) { System.out.println(cnt++); } } } Teraz moje pytanie: Dlaczego ta metoda drukuje „4”? Pomyślałem, że może …
Jestem zaskoczony, jak można kontynuować wykonywanie nawet po StackOverflowErrorwystąpieniu a w Javie. Wiem, że StackOverflowErrorjest to podklasa klasy Error. Klasa Error jest opisana jako „podklasa Throwable, która wskazuje na poważne problemy, których rozsądna aplikacja nie powinna próbować wychwycić”. Brzmi to bardziej jak zalecenie niż reguła, zakładając, że przechwytywanie błędu takiego …
W jaki sposób dochodzi do przepełnienia stosu i jakie są najlepsze sposoby, aby temu zapobiec, lub sposoby, aby temu zapobiec, szczególnie na serwerach internetowych, ale inne przykłady również byłyby interesujące?
Chciałbym wygenerować ciąg JSON z mojego obiektu: Gson gson = new Gson(); String json = gson.toJson(item); Za każdym razem, gdy próbuję to zrobić, pojawia się ten błąd: 14:46:40,236 ERROR [[BomItemToJSON]] Servlet.service() for servlet BomItemToJSON threw exception java.lang.StackOverflowError at com.google.gson.stream.JsonWriter.string(JsonWriter.java:473) at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:347) at com.google.gson.stream.JsonWriter.value(JsonWriter.java:440) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:235) at com.google.gson.internal.bind.TypeAdapters$7.write(TypeAdapters.java:220) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68) at …
Kiedy uruchamiam kod, Node.js zgłasza "RangeError: Maximum call stack size exceeded"wyjątek spowodowany zbyt dużą liczbą wywołań rekurencyjnych. Próbowałem zwiększyć rozmiar stosu Node.js o sudo node --stack-size=16000 app, ale Node.js ulega awarii bez żadnego komunikatu o błędzie. Gdy uruchomię to ponownie bez sudo, a następnie node.js wydruki 'Segmentation fault: 11'. Czy …
Czy możemy znaleźć hashcodecoś, listco zawiera się jako element? Wiem, że to zła praktyka, ale o to pytał ankieter. Kiedy uruchomiłem następujący kod, generuje on StackOverflowError: public class Main { public static void main(String args[]) { ArrayList<ArrayList> a = new ArrayList(); a.add(a); a.hashCode(); } } Teraz mam dwa pytania: Dlaczego …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.