Jaki jest najlepszy sposób w węźle na obsłużenie nieobsłużonych oczekiwań wychodzących z kodu węzłowego? Mam proces działający w tle, który uruchamia i przeszukuje zawartość sieci Web i będzie działał przez długi czas bez problemu, ale co jakiś czas pojawia się nieoczekiwany wyjątek i nie mogę sprawnie go obsłużyć. Zwykłym winowajcą wydaje się być problem z siecią (utracona łączność), w której nie powiodą się połączenia HTTP. Wszystkie utworzone przeze mnie funkcje są zgodne ze wzorcem FUNCTION_NAME (błąd, zwrócony_dana), ale w sytuacjach, w których wystąpił błąd, nie widzę żadnej z funkcji utworzonych w stosie wywołań, który został wydrukowany, a zamiast tego jest wyświetlany niektóre z podstawowych modułów węzła. Nie martwię się o te nieczęste błędy i ich główną przyczynę, celem tego posta jest po prostu staranie się znaleźć wdzięczny sposób radzenia sobie z tymi wyjątkami.Obsługa wyjątków węzła
Próbowałem umieścić próbę/catch na najwyższym poziomie mojego kodu, gdzie wszystko działa pod, ale nie wydaje się uchwycić te wyjątki. Czy dobrą praktyką w węźle jest używanie try/catch we wszystkich funkcjach niższego poziomu, które używają dowolnego kodu źródłowego? Czy istnieje sposób na globalne przechwytywanie wszystkich nieobsługiwanych wyjątków?
Dzięki
Chris
zaktualizowana DODAJ stos
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: connect Unknown system errno 10060
at errnoException (net.js:642:11)
at Object.afterConnect [as oncomplete] (net.js:633:18)
Czy możesz skopiować stos niektórych z tych niezamkniętych stosów wyjątków? – seppo0010
Właśnie dodałem wydruk stosu do głównego pytania z jednego z ostatnich błędów. Było to dla mnie kłopotliwe, ponieważ nie zawierało w nim żadnego kodu. –
Którą wersję węzła używasz? Pytam, ponieważ numery linii nie pasują do mojej lokalnej kopii. – seppo0010