if the exception classes should be accessible somewhere else (e.g. to catch these exceptions) they should be defined in the header file.
we now recommend to put the exceptions as nested classes in the classes to which they belong, in this case the mcparticle. andreas had it in his tips&tricks example, but it was not in the coding conventions until recently (sorry, my fault).