Unfortunately, you cannot catch exceptions in child processes. If you do not have control over the tools' code, there is not much that you can really do. If you can make changes to the tools' code, you should add exception handling code to catch these exceptions and report to the user or calling app appropriately. Appropriate exception handling code for Windows Forms includes a try/catch around Main(), a handler for Application.ThreadException, and a handler for AppDomain.CurrentDomain.UnhandledException. For Console apps, you need a try/catch around Main() and a handler for AppDomain.CurrentDomain.UnhandledException.