I use just
trap EXIT
With set -eu
errors in subshells should lead to an exit anyway, so my exit handler is called. Or am I missing some case?