W moim programie NodeJS analizuję plik JSON użytkownika.Jak określić "spowodowany" w błędzie JavaScript?
więc używam:
this.config = JSON.parse(fs.readFileSync(path));
Problemem jest to, że jeśli plik json nie jest prawidłowo sformatowany, błąd rzucony jest tak:
undefined:55
},
^
SyntaxError: Unexpected token }
at Object.parse (native)
at new MyApp (/path/to/docker/lib/node_modules/myApp/lib/my-app.js:30:28)
...
Ponieważ nie jest naprawdę przyjazny dla użytkownika Chciałbym rzucić Error
określając pewien przyjazny dla użytkownika komunikat (jak "twój plik konfiguracyjny nie jest dobrze sformatowany"), ale chcę zachować stacktrace w celu wskazania problematycznej linii.
W świecie Java użyłem throw new Exception("My user friendly message", catchedException)
, aby mieć oryginalny wyjątek, który spowodował ten.
Jak to jest możliwe w świecie JS?
owinąć go w 'try {} catch() {}' i utworzyć własną wiadomość. –
Tak to właśnie chciałem zrobić na początku. Ale chciałem również zachować oryginalny stos, który zawiera oryginalną wiadomość wskazującą na problematyczną linię (w moim przykładzie) ... I nie mogę znaleźć "dobrego" sposobu, aby to zrobić w obsłudze błędów JS, którą widziałem do teraz w sieci ... –
Rzeczywiście widzę, że moje pytanie jest duplikatem: http://stackoverflow.com/questions/17886769/how-to-chain-exceptions-in-javascript-ie-add-cause-like -in-java –