Alguns pontos a considerar:
Os ouvintes devem se comportar de maneira bem comportada, protegendo a execução do próprio código de permitir que as exceções escapem para o exterior.
O evento firer (?), que é o único que dispara o evento, não tem interesse em fazer o que os ouvintes fazem com ele. Seu único trabalho é garantir que todos os ouvintes possam ouvir sobre o evento. Isso significa que ele deve proteger contra um dos ouvintes fazendo qualquer coisa que impeça outros ouvintes de obter o evento. Então, sim, pegue exceções.
O firer de eventos não tem interesse em capturar exceções além de garantir que o mau comportamento de um ouvinte não afete outros ouvintes. Então, neste caso, "comer" a exceção poderia ser defendida. No entanto, comer exceções não ajuda ninguém, portanto, registrar a exceção com tantos detalhes sobre o ouvinte ofensivo quanto possível é o caminho a seguir.
Eu não faria o atirador coletar exceções e, finalmente, criar um acordo próprio. Muito simplesmente porque o firer fez o seu trabalho corretamente e não tem necessidade de lançar uma exceção. Registrando as exceções geradas por ouvintes mal-comportados, o firer já está fazendo sua parte em auxiliar qualquer depuração necessária. (Logs devem estar sempre livres de exceções ...).