For service-based process, there is a frequent failure when it runs under a loose-coupled and uncertain environment, such as mobile Internet. The runtime self-adaptation mechanism is urgently needed to automatically achieve the goal of a process. Therefore, this article presents a self-adaptation framework to automatically monitor and self-adapt to various failures. On the basis of the presented self-adaptation exceptions framework, the service-based process is automatically extended with these exception definitions. In particular, the local self-adaptation exceptions monitor the failures over each web service instance, whereas the global self-adaptation exceptions are designed to explore the process-level failures. For each exception, the self-adaptation strategy is dynamically generated according to the running environment. Finally, we implement the prototype system running on the Apache ODE. The experimental results show that our framework can automatically recover a process instance from various failures, and the proposed approach can identify more failure types than previous works and apparently improve the running success rate of process instances.