Puedes usar CX_ROOT para capturar cualquier excepción derivada, como CX_SY_ZERODIVIDE. Pero debes usar CX_SY_ZERODIVIDE y muchas otras clases derivadas para realizar un tratamiento diferente en cada excepción. Depende de tus necesidades. Por ejemplo, si realizas operaciones aritméticas, probablemente tendrás diferentes posibilidades de excepción (división entre cero, desbordamiento aritmético)... Puedes simplemente mostrar un mensaje de error (en este caso, la captura de CX_ROOT será suficiente) o puedes realizar un tratamiento de error más sofisticado, por ejemplo, llenar algún campo con '#DIV POR 0#' o '#SOBREFLUJO#'...
Espero que esto te ayude a resolver tu pregunta.
Además, recuerda que una subclase PUEDE definirse como RESUMABLE, aunque CX_ROOT no lo esté. Por lo tanto, puedes usar la instrucción RESUME con algunas excepciones derivadas, pero no con CX_ROOT.