You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I set the mode to 'json', and python prints something that isn't JSON, then python-shell's use of JSON.parse() causes an error as one would expect. However, I can't seem to catch the error and it's just crashing my program.
I've tried wrapping either a PythonShell() object or a PythonShell.run() function in a try catch, using the function (err) callback, listing to an 'error' emit, but nothing can seem to catch this error.
For now I can set it to text mode and manually call JSON.parse() but this seems an unsatisfying solution.
Activity
Almenon commentedon Oct 2, 2021
Yeah... this isn't great :|
The problem is that the
parsemethod is called inside a pipe handler, so the context in which the error happens is isolated to that specific handler. The handler is called asynchronously and you can't catch errors in asynchronus code with a try-catch (see # 2).So for now unfortunately your solution is the correct one.
The library could be improved by catching the error inside the handler and emitting a
parseErrorevent, so I'll categorize this as a enhancement idea.petem24 commentedon Jan 25, 2024
Same issue here