I really like to use te catch node, to catch errors and program logic after that.For example, I use this to response http 500, with error message to the client side. I mostly use node-red as backend (API).
All loging from level 'info' are logged into Loki and are presented in Grafana. For me this is a perfect solution to keep insights in all events and errors in node-red. I set up this custom logger in de settings file.
One negative side effect of using the catch node is that node-red won't log the error anymore. So when something went wrong, I won't see any logging of this event. In my opinion this isn't correct. There is an error raised, but catched.
Two questions:
Is there another way to do the logging of catched errors? (no I don't want to raise another 'not catch' error, after the catch node )
The idea of using a catch node - is to catch the error so it is no longer visible. If you want to see the error then it is clear to use a debug node and investigate the msg.error object. This is working as it should. I don't want to see any errors when i use a catch node. However the catch node can not catch all errors.
I don't agree. As I see it, the catch-node is a low-code variant of try and catch.
If you write a peace of code with try and catch for unexpected situations, you still want logging.
You take care of this in catch part of your code. In other words, I think to the catch node should have a option to log error, and continue...
In combination with the debug node - you have all options to write a flow to react on the error. I prefer to use Node Red using core Nodes instead of hiding everything in code.