1. recursive write. 2. remove some exceptions.
master client only expose IOException and TException to the upper layer.
worker client only expose IOException and TException to the upper layer.