Es posible crear algún tipo de controlador de excepción global en Android?

Mi aplicación incluye una serie de Actividades, a través de las cuales el usuario debe proceder de manera lineal. Digamos que esta serie de actividades se ve así: A (representa el menú principal), B, C, D, E. El usuario procede así: A -> B -> C -> D -> E. En cada uno de En estas actividades, el usuario debe ingresar datos o permitir que el dispositivo obtenga los datos automáticamente (por ejemplo, a través de la red o Bluetooth).

Ocasionalmente, mi aplicación se bloquea en una de las actividades intermedias. Lo que termina sucediendo, por lo general, es que la aplicación retrocede una o dos actividades. Por ejemplo, si mi aplicación se bloquea en la Actividad D, la aplicación podría volver a la Actividad C o B. Pero el problema es que, después de tal bloqueo, los datos de entrada están en un estado tan extraño que la aplicación vuelve a fallar y muestra la fuerza cerrar el diálogo, todo el camino de regreso a la Actividad A, el menú principal.

¿Cómo puedo detectar estas excepciones que causan estos bloqueos a nivel mundial en toda la aplicación, para poder limpiar los datos y permitir que el usuario regrese al menú principa