Você primeiro precisa isolar as áreas onde os erros podem ocorrer e ficar visível ao usuário. Então você pode documentá-los. É simples assim.
Bem, simples na teoria ... na prática, erros podem ocorrer em todo o lugar, e relatá-los pode transformar um código legal em um monstro de registro, lançamento e manipulação de exceções e passagem de valores de retorno.
Eu recomendaria uma abordagem em duas etapas então. Primeiro é registrar, registrar lotes e lotes.
O segundo é determinar os principais componentes e suas interfaces, e definir em quais casos de erros principais esses componentes podem se encontrar. Você pode fazer o logon de maneira mais visível quando um desses erros (como você lida com o erro internamente é sua escolha). - exceções ou códigos de erro não fazem diferença aqui). Um usuário geralmente vê o erro e acessa os logs para obter informações mais detalhadas.
A mesma abordagem é usada para servidores da Web e seu exemplo de código de erro http. Se o usuário vê um 404 e o informa como suporte, ele procurará nos logs os detalhes do que estava acontecendo, qual página foi visitada, quando e coletará qualquer outra informação possível de onde quer que seja. , esteja no banco de dados, na rede ou no aplicativo.