That's IMO a no-go; you must not rely on some piece of text occurring in somewhere in an exceptions message.  That's way too fragile.

The IMO right way to do the above is to throw a special type of exception, so the calling code is able to handle this kind of exception specially. I assume ```YUIException``` is your basic exception type, so it could look like this:
```
struct YUIException;
struct YUIPluginException : /* public std::runtime_error,  // if you want to also support std::exceptions */
                            public YUIException
{...}; // thrown e.g. on 'pipe failed'

try {
  loadPlugin( wantedGUI, withThreads );
  return;
}
catch ( YUIPluginException & exception ) // catch most specific exceptions first
{ YUI_RETHROW( exception );  }
catch ( YUIException & )
{ YUI_CAUGHT( exception );  /* and ignored... */ }
```