Warning: Here follows unsolicited advice on faults:
However, since you already know under what circumstances you want to return a fault, returning a custom fault, which also is declared in the WSDL, would be a courtesy to clients having only a WSDL to refer to. I would want to compare it to throwing a Throwable exception when a method receives an illegal parameter, when a IllegalArgumentException would be more informative to clients.
See where your hand is? Not there. It's next to this tiny ad: