Catching errors during routine execution

Hello!

I wonder- is it possible to catch errors occur execution of chain of nodes? By "possible" I mean both posiibility of implementation of such feature by third-party developer with SDK, or already existing solutions. 

For example you have a chain with some disk operations or java snippet which executes continously in a loop. And at one lucky moment it get an error, and the result of this will be stop of whole execution. And if there were, for example, two nodes, on the starting and ending of critical segment (in a loop nodes fashion), that would catch an errors and forward execution in defined way - building of robust, aimed on long-time execution, routines inside KNIME would be easier.

 

And more global question - how do you think - can KNIME serve for long-time iterative data processing and reporting tasks?

Hi deepminer,

I am not aware of any generic error handling capabilities within KNIME that are able to capture and handle arbitrary errors. (Please correct me if I am missing something.) Sometimes, it is possible to use constructs such as “Empty Table Replacer” or “Case” to activate or inactivate parts of your workflow to handle special cases.

In principle, it should be possible to implement robust nodes using the SDK: within Java, you have the possibility to catch and handle arbitrary Exceptions (or even Errors). If you are not able to handle an exception within a single node, you could create a special workflow variable or fill a special output port to allow the workflow designer to handle the error. This could of course require a lot of development work if you need many such “robust” nodes.

Furthermore, the KNIME Batch Executor is able to indicate through its exit code whether the execution of a workflow was successful. This information can in some cases be used to trigger an automatic error handling.

Best,
Nils