Я внедрил такую систему, как та, которую вы предлагаете, обернув все мои методы в try / catch и отправив трассировку стека в службу, которая отправляет мне сообщения об ошибках. Я создал базовый формат для ошибки, в котором регистрируется, в каком методе произошла ошибка. Я заметил, что иногда я получаю нулевое значение из трассировки стека, поэтому я хотел записать эту информацию для этих ситуаций.
Это значительно улучшило мое приложение. Я отследил (большое) количество ошибок и выпустил намного более чистую сборку для моих пользователей. Теперь я никогда не получаю электронные письма.