Use RuntimeException unless this failure somehow indicates a mistake in the client. The OperationContext will catch and deal with it, including logging it and providing a failed response to the client. An OFE will just produce an failed response on the client with nothing  in the server logs.