As Big Chimp correctly surmised, an error had crept into my code (I freed a dynamic form too early), so the error which came up was nothing to do with the fact that Firebird wasn't running and, although the GDB stopped my code at point where the IBDConnect component connected, running the executable on it's own allowed the exception to be caught correctly.
I hear what you're saying about the snippets of code.
Although the project isn't exactly top secret, I'd be a little peeved if a more competent programmer managed to put a product on the market which does what my app is supposed to do (and probably did it better).
I have, in the past, put together half-projects to demonstrate where some code was misbehaving and would have done so again, had your suggestion to look elsewhere not borne fruit.