This is not true you can define your own exception to throw and catch. I am missing something though as I am not sure what I have wrong. The spec says as long as you define the exception correctly JAX-RPC will throw that exception rather than the SOAPFaultException. I am sure someone has done this before, if so please help.
I.E. as part of the spec:
Checked user exception
A good programming practice often involves explicitly defining checked user exceptions as part of the interface contract. In the JAX-RPC world, programmers need to first define wsdl:faults as part of a wsdl:operation. A wsdl:operation allows multiple wsdl:fault elements, just like a
Java method allows multiple exceptions. Each wsdl:fault is mapped to a user exception as part of the SEI. In most cases, Java exceptions do not have complicated data structures; similarly for wsdl:fault, the schema definition referenced by the wsdl:fault is often straightforward. Nevertheless, it's still very important for programmers to think over which kind of exceptions are expected to be thrown, and then define appropriate wsdl:faults.