Treinamento
Módulo
Tratar erros usando a linguagem de aplicativo no Dynamics 365 Business Central - Training
Saiba como tratar erros no Dynamics 365 Business Central usando AL (linguagem de aplicativo).
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Observação
Este guia de design foi criado para o Windows 7 e não foi atualizado para versões mais recentes do Windows. Grande parte das diretrizes ainda se aplica em princípio, mas a apresentação e os exemplos não refletem nossas diretrizes de design atuais.
Mensagens de erro no Windows 7 alertam os usuários sobre problemas que já ocorreram. Por outro lado, as mensagens de aviso alertam os usuários sobre condições que podem causar problemas no futuro. Mensagens de erro podem ser apresentadas usando caixas de diálogo modais, mensagens in-loco, notificações ou balões.
Uma mensagem de erro modal típica.
Mensagens de erro efetivas informam aos usuários que ocorreu um problema, explicam por que isso aconteceu e fornecem uma solução para que os usuários possam corrigir o problema. Os usuários devem executar uma ação ou alterar seu comportamento como resultado de uma mensagem de erro.
Mensagens de erro úteis e bem escritas são cruciais para uma experiência de usuário de qualidade. Mensagens de erro mal escritas resultam em baixa satisfação do produto e são uma das principais causas de custos de suporte técnico evitáveis. Mensagens de erro desnecessárias interrompem o fluxo dos usuários.
Nota: Diretrizes relacionadas a caixas de diálogo, mensagens de aviso, confirmações, ícones padrão, notificações e layout são apresentadas em artigos separados.
Para decidir, considere estas perguntas:
As características das mensagens de erro ruins
Não deve ser surpresa que haja muitas mensagens de erro irritantes, inúteis e mal escritas. E como as mensagens de erro geralmente são apresentadas usando diálogos modais, elas interrompem a atividade atual do usuário e exigem ser confirmadas antes de permitir que o usuário continue.
Parte do problema é que há tantas maneiras de fazê-lo errado. Considere estes exemplos do Salão de Mensagem de Erro da Vergonha:
Mensagens de erro desnecessárias
Incorreto:
Este exemplo do Windows XP pode ser a pior mensagem de erro de todos os tempos. Isso indica que um programa não pôde ser iniciado porque o próprio Windows está em processo de desligamento. Não há nada que o usuário possa fazer sobre isso ou mesmo queira fazer isso (o usuário optou por desligar o Windows, afinal). E exibindo essa mensagem de erro, o Windows impede que ele seja desligado!
O problema: A mensagem de erro em si é o problema. Além de ignorar a mensagem de erro, não há nada para os usuários fazerem.
Causa principal: Relatar todos os casos de erro, independentemente das metas ou do ponto de vista dos usuários.
Alternativa recomendada: Não relate erros com os quais os usuários não se importam.
Mensagens de erro "Êxito"
Incorreto:
Essa mensagem de erro resultou do usuário optar por não reiniciar o Windows imediatamente após a remoção do programa. A remoção do programa foi bem-sucedida do ponto de vista do usuário.
O problema: Não há nenhum erro do ponto de vista do usuário. Além de ignorar a mensagem de erro, não há nada para os usuários fazerem.
Causa principal: A tarefa foi concluída com êxito do ponto de vista do usuário, mas falhou do ponto de vista do programa de desinstalação.
Alternativa recomendada: Não relate erros para condições que os usuários consideram aceitáveis.
Mensagens de erro completamente inúteis
Incorreto:
Os usuários aprendem que houve um erro, mas não têm ideia do que foi o erro ou o que fazer sobre ele. E não, não está tudo bem!
O problema: A mensagem de erro não dá um problema específico e não há nada que os usuários possam fazer sobre isso.
Causa principal: Provavelmente, o programa tem mau tratamento de erros.
Alternativa recomendada: Crie um bom tratamento de erros no programa.
Mensagens de erro incompreensíveis
Incorreto:
Neste exemplo, a instrução de problema é clara, mas a explicação complementar é totalmente desconcertante.
O problema: A instrução ou solução do problema é incompreensível.
Causa principal: Explicando o problema do ponto de vista do código em vez do do usuário.
Alternativa recomendada: Escreva um texto de mensagem de erro que os usuários de destino possam entender facilmente. Forneça soluções que os usuários possam realmente executar. Projetar a experiência de mensagem de erro do programa não tem programadores que compõem mensagens de erro no local.
Mensagens de erro que supercomunizam
Incorreto:
Neste exemplo, a mensagem de erro aparentemente tenta explicar todas as etapas de solução de problemas.
O problema: Muita informação.
Causa principal: Fornecer muitos detalhes ou tentar explicar um processo complicado de solução de problemas dentro de uma mensagem de erro.
Alternativa recomendada: Evite detalhes desnecessários. Além disso, evite solucionadores de problemas. Se uma solução de problemas for necessária, concentre-se nas soluções mais prováveis e explique o restante vinculando-se ao tópico apropriado na Ajuda.
Mensagens de erro desnecessariamente duras
Incorreto:
A incapacidade do programa de encontrar um objeto dificilmente soa catastrófica. E supondo que seja catastrófico, por que está bem a resposta?
O problema: O tom do programa é desnecessariamente severo ou dramático.
Causa principal: O problema ocorre devido a um bug que parece catastrófico do ponto de vista do programa.
Alternativa recomendada: Escolha o idioma cuidadosamente com base no ponto de vista do usuário.
Mensagens de erro que blame usuários
Incorreto:
Por que fazer com que os usuários se sintam criminosos?
O problema: A mensagem de erro é formulada de uma forma que acusa o usuário de cometer um erro.
Causa principal: Frases não sensíveis que se concentram no comportamento do usuário em vez do problema.
Alternativa recomendada: Concentre-se no problema, não na ação do usuário que levou ao problema, usando a voz passiva conforme necessário.
Mensagens de erro bobas
Incorreto:
Neste exemplo, a instrução de problema é bastante irônica e nenhuma solução é fornecida.
O problema: Instruções de mensagem de erro que são bobas ou não sequitors.
Causa principal: Criar mensagens de erro sem prestar atenção ao contexto.
Alternativa recomendada: Tenha suas mensagens de erro criadas e revisadas por um gravador. Considere o contexto e o estado mental do usuário ao revisar os erros.
Mensagens de erro do programador
Incorreto:
Neste exemplo, a mensagem de erro indica que há um bug no programa. Essa mensagem de erro tem significado apenas para o programador.
O problema: As mensagens destinadas a ajudar os desenvolvedores do programa a encontrar bugs são deixadas na versão de lançamento do programa. Essas mensagens de erro não têm nenhum significado ou valor para os usuários.
Causa principal: Programadores que usam a interface do usuário normal para fazer mensagens para si mesmos.
Alternativa recomendada: Os desenvolvedores devem compilar condicionalmente todas essas mensagens para que elas sejam removidas automaticamente da versão de lançamento de um produto. Não perca tempo tentando cometer erros como esse que podem ser compreensíveis para os usuários porque seu único público-alvo são os programadores.
Mensagens de erro mal apresentadas
Incorreto:
Este exemplo tem muitos erros comuns de apresentação.
O problema: Obtendo todos os detalhes errados na apresentação da mensagem de erro.
Causa principal: Não conhecer e aplicar as diretrizes de mensagem de erro. Não usar gravadores e editores para criar e revisar as mensagens de erro.
A natureza do tratamento de erros é tal que muitos desses erros são muito fáceis de cometer. É perturbador perceber que a maioria das mensagens de erro pode ser indicada para o Salão da Vergonha.
As características de boas mensagens de erro
Ao contrário dos exemplos inválidos anteriores, boas mensagens de erro têm:
Além disso, boas mensagens de erro são apresentadas de uma maneira que é:
Ao projetar sua experiência de tratamento de erros para ter essas características, você pode manter as mensagens de erro do programa fora do Hall da Vergonha da Mensagem de Erro.
Evitando mensagens de erro desnecessárias
Geralmente, a melhor mensagem de erro não é uma mensagem de erro. Muitos erros podem ser evitados por meio de um design melhor, e muitas vezes há alternativas melhores para mensagens de erro. Geralmente, é melhor evitar um erro do que relatar um.
As mensagens de erro mais óbvias a evitar são aquelas que não são acionáveis. Se os usuários provavelmente ignorarem a mensagem sem fazer ou alterar nada, omita a mensagem de erro.
Algumas mensagens de erro podem ser eliminadas porque não são problemas do ponto de vista do usuário. Por exemplo, suponha que o usuário tentou excluir um arquivo que já está em processo de exclusão. Embora esse possa ser um caso inesperado do ponto de vista do código, os usuários não consideram isso um erro porque o resultado desejado é alcançado.
Incorreto:
Essa mensagem de erro deve ser eliminada porque a ação foi bem-sucedida do ponto de vista do usuário.
Para outro exemplo, suponha que o usuário cancele explicitamente uma tarefa. Para o ponto de vista do usuário, a condição a seguir não é um erro.
Incorreto:
Essa mensagem de erro também deve ser eliminada porque a ação foi bem-sucedida do ponto de vista do usuário.
Às vezes, as mensagens de erro podem ser eliminadas concentrando-se nas metas dos usuários em vez da tecnologia. Ao fazer isso, reconsidere o que realmente é um erro. O problema com as metas do usuário ou com a capacidade do programa de satisfazê-los? Se a ação do usuário fizer sentido no mundo real, ela também deverá fazer sentido no software.
Por exemplo, suponha que em um programa de comércio eletrônico um usuário tente encontrar um produto usando a pesquisa, mas a consulta de pesquisa literal não tem correspondências e o produto desejado está fora de estoque. Tecnicamente, isso é um erro, mas em vez de dar uma mensagem de erro, o programa pode:
Desde que a solicitação do usuário seja razoável, um programa de comércio eletrônico bem projetado deve retornar resultados razoáveis e não erros.
Outra ótima maneira de evitar mensagens de erro é evitando problemas em primeiro lugar. Você pode evitar erros:
Fornecer mensagens de erro necessárias
Às vezes, você realmente precisa fornecer uma mensagem de erro. Os usuários cometem erros, redes e dispositivos param de funcionar, objetos não podem ser encontrados ou modificados, tarefas não podem ser concluídas e programas têm bugs. O ideal é que esses problemas ocorram com menos frequência, por exemplo, podemos criar nosso software para evitar muitos tipos de erros do usuário, mas não é realista evitar todos esses problemas. E quando um desses problemas acontece, uma mensagem de erro útil faz com que os usuários se retomem rapidamente.
Uma crença comum é que as mensagens de erro são a pior experiência do usuário e devem ser evitadas a todo custo, mas é mais preciso dizer que a confusão do usuário é a pior experiência e deve ser evitada a todo custo. Às vezes, esse custo é uma mensagem de erro útil.
Considere os controles desabilitados. Na maioria das vezes, é óbvio por que um controle está desabilitado, portanto, desabilitar o controle é uma ótima maneira de evitar uma mensagem de erro. No entanto, e se o motivo pelo qual um controle está desabilitado não for óbvio? O usuário não pode continuar e não há comentários para determinar o problema. Agora, o usuário está preso e precisa deduzir o problema ou obter suporte técnico. Nesses casos, é muito melhor deixar o controle habilitado e dar uma mensagem de erro útil.
Incorreto:
Por que o botão Avançar está desabilitado aqui? É melhor deixá-lo habilitado e evitar confusão do usuário, dando uma mensagem de erro útil.
Se você não tiver certeza se deve enviar uma mensagem de erro, comece redigindo a mensagem de erro que você pode dar. Se os usuários provavelmente executarem uma ação ou alterarem seu comportamento como resultado, forneça a mensagem de erro. Por outro lado, se os usuários provavelmente ignorarem a mensagem sem fazer ou alterar nada, omita a mensagem de erro.
Projetando para uma boa manipulação de erros
Embora a criação de um bom texto de mensagem de erro possa ser desafiadora, às vezes é impossível sem um bom suporte de tratamento de erros do programa. Considere esta mensagem de erro:
Incorreto:
As chances são de que o problema seja realmente desconhecido porque o suporte ao tratamento de erros do programa está faltando.
Embora seja possível que essa seja uma mensagem de erro muito mal escrita, ela provavelmente reflete a falta de boa manipulação de erros pelo código subjacente, não há informações específicas conhecidas sobre o problema.
Para criar mensagens de erro específicas, acionáveis e centradas no usuário, o código de tratamento de erros do programa deve fornecer informações de erro específicas e de alto nível:
Boas mensagens de erro não são apenas um problema de interface do usuário, elas são um problema de design de software. Uma boa experiência de mensagem de erro não é algo que pode ser abordado mais tarde.
Solução de problemas (e como evitá-lo)
Solução de problemas de resultados quando um problema com várias causas diferentes é relatado com uma única mensagem de erro.
Incorreto:
Correto:
Solução de problemas de resultados quando vários problemas são relatados com uma única mensagem de erro.
No exemplo a seguir, não foi possível mover um item porque ele já foi movido ou excluído ou o acesso foi negado. Se o programa pode determinar facilmente a causa, por que colocar a carga sobre o usuário para determinar a causa específica?
Incorreto:
Bem, o que é isso? Agora, o usuário precisa solucionar problemas.
O programa pode determinar se o acesso foi negado, portanto, esse problema deve ser relatado com uma mensagem de erro específica.
Correto:
Com uma causa específica, nenhuma solução de problemas é necessária.
Use mensagens com várias causas somente quando a causa específica não puder ser determinada. Neste exemplo, seria difícil para o programa determinar se o item foi movido ou excluído, portanto, uma única mensagem de erro com várias causas pode ser usada aqui. No entanto, é improvável que os usuários se importem se, por exemplo, não conseguiram mover um arquivo excluído. Para essas causas, a mensagem de erro nem é necessária.
Tratamento de erros desconhecidos
Em alguns casos, você realmente não saberá o problema, a causa ou a solução. Se for imprudente suprimir o erro, é melhor estar adiantado sobre a falta de informações do que apresentar problemas, causas ou soluções que podem não estar corretas.
Por exemplo, se o programa tiver uma exceção sem tratamento, a seguinte mensagem de erro será adequada:
Se você não conseguir suprimir um erro desconhecido, é melhor estar adiantado sobre a falta de informações.
Por outro lado, forneça informações específicas e acionáveis se elas provavelmente serão úteis na maior parte do tempo.
Essa mensagem de erro é adequada para um erro desconhecido se a conectividade de rede geralmente for o problema.
Determinar o tipo de mensagem apropriado
Alguns problemas podem ser apresentados como um erro, aviso ou informações, dependendo da ênfase e da frase. Por exemplo, suponha que uma página da Web não possa carregar um controle ActiveX sem sinal com base na configuração atual de Explorer da Internet do Windows:
Para determinar o tipo de mensagem apropriado, concentre-se no aspecto mais importante do problema que os usuários precisam conhecer ou agir. Normalmente, se um problema impedir que o usuário prossiga, você deverá apresentá-lo como um erro; se o usuário puder continuar, apresente-o como um aviso. Crie a instrução main ou outro texto correspondente com base nesse foco e escolha um ícone (padrão ou não) que corresponda ao texto. O main texto de instrução e os ícones devem sempre corresponder.
Apresentação de mensagem de erro
A maioria das mensagens de erro em programas do Windows são apresentadas usando caixas de diálogo modais (como a maioria dos exemplos neste artigo), mas há outras opções:
Colocar mensagens de erro em caixas de diálogo modais tem o benefício de exigir a atenção e a confirmação imediatas do usuário. No entanto, essa também será a principal desvantagem se essa atenção não for necessária.
Você realmente precisa interromper os usuários para que eles possam clicar no botão Fechar? Caso contrário, considere alternativas para usar uma caixa de diálogo modal.
As caixas de diálogo modais são uma ótima opção quando o usuário deve reconhecer o problema imediatamente antes de continuar, mas muitas vezes uma opção ruim de outra forma. Em geral, você deve preferir usar a apresentação de peso mais leve que faz bem o trabalho.
Evitar excesso de comunicação
Geralmente, os usuários não leem, verificam. Quanto mais texto houver, mais difícil será a verificação do texto e maior a probabilidade de os usuários não lerem o texto. Como resultado, é importante reduzir o texto para seus fundamentos e usar a divulgação progressiva e links de Ajuda quando necessário para fornecer informações adicionais.
Há muitos exemplos extremos, mas vamos examinar um mais típico. O exemplo a seguir tem a maioria dos atributos de uma boa mensagem de erro, mas seu texto não é conciso e requer motivação para ler.
Incorreto:
Este exemplo é uma boa mensagem de erro, mas é sobrecomunhável.
O que todo esse texto está realmente dizendo? Algo assim:
Correto:
Essa mensagem de erro tem essencialmente as mesmas informações, mas é muito mais concisa.
Usando a Ajuda para fornecer os detalhes, essa mensagem de erro tem um estilo de apresentação pirâmide invertido .
Para obter mais diretrizes e exemplos sobre comunicação excessiva, consulte Texto da interface do usuário.
Se você fizer apenas oito coisas
Padrões de uso
As mensagens de erro têm vários padrões de uso:
Rótulo | Valor |
---|---|
Problemas do sistema O sistema operacional, o dispositivo de hardware, a rede ou o programa falharam ou não estão no estado necessário para executar uma tarefa. |
Muitos problemas do sistema podem ser resolvidos pelo usuário:
Neste exemplo, o programa não pode encontrar uma câmera para executar uma tarefa de usuário. Neste exemplo, um recurso necessário para executar uma tarefa precisa ser ativado. |
Problemas de arquivo Um arquivo ou pasta necessário para uma tarefa iniciada pelo usuário não foi encontrado, já está em uso ou não tem o formato esperado. |
Neste exemplo, o arquivo ou pasta não pode ser excluído porque não foi encontrado. Neste exemplo, o programa não dá suporte ao formato de arquivo especificado. |
Problemas de segurança O usuário não tem permissão para acessar um recurso ou privilégio suficiente para executar uma tarefa iniciada pelo usuário. |
Neste exemplo, o usuário não tem permissão para acessar um recurso. Neste exemplo, o usuário não tem o privilégio de executar uma tarefa. |
Problemas de tarefa Há um problema específico ao executar uma tarefa iniciada pelo usuário (além de um sistema, arquivo não encontrado, formato de arquivo ou problema de segurança). |
Neste exemplo, os dados da Área de Transferência não podem ser colados no Paint. Neste exemplo, o usuário não pode instalar uma atualização de software. |
Problemas de entrada do usuário O usuário inseriu um valor incorreto ou inconsistente com outra entrada do usuário. |
Neste exemplo, o usuário inseriu um valor de hora incorreto. Neste exemplo, a entrada do usuário não está no formato correto. |
Incorreto:
Neste exemplo, uma caixa de texto irrestrita é usada para entrada restrita. Em vez disso, use um controle deslizante.
Neste exemplo, um balão indica um problema de entrada enquanto ainda está no controle .
Neste exemplo, um erro in-loco é usado para um erro encontrado clicando no botão confirmar.
As caixas de diálogo de mensagem de erro modal não têm ícones de barra de título. Os ícones da barra de título são usados como uma distinção visual entre janelas primárias e janelas secundárias.
Use um ícone de erro. Exceções:
Se o erro for um problema de entrada do usuário exibido usando uma caixa de diálogo modal ou balão, não use um ícone. Fazer isso é contra o tom encorajador do Windows. No entanto, as mensagens de erro in-loco devem usar um pequeno ícone de erro (16 x 16 pixels) para identificá-las claramente como mensagens de erro.
Nestes exemplos, os problemas de entrada do usuário não precisam de ícones de erro.
Neste exemplo, uma mensagem de erro in-loco precisa de um pequeno ícone de erro para identificá-la claramente como uma mensagem de erro.
Se o problema for para um recurso que tem um ícone (e não um problema de entrada do usuário), você pode usar o ícone de recurso com uma sobreposição de erro. Se você fizer isso, use também o nome do recurso como assunto do erro.
Neste exemplo, o ícone de recurso tem uma sobreposição de erro e o recurso é o assunto do erro.
Não use ícones de aviso para erros. Isso geralmente é feito para fazer com que a apresentação se sinta menos grave. Erros não são avisos.
Incorreto:
Neste exemplo, um ícone de aviso é usado incorretamente para fazer com que o erro pareça menos grave.
Para obter mais diretrizes e exemplos, consulte Ícones padrão.
Neste exemplo, o botão de divulgação progressiva ajuda os usuários a fazer drill down para obter mais detalhes, se desejarem, ou simplificar a interface do usuário se não o fizerem.
Para obter diretrizes de rotulagem, consulte Controles progressivos de divulgação.
Não mostrar esta mensagem novamente
Para obter mais diretrizes, consulte Caixas de diálogo.
Para obter mais diretrizes, consulte Ajuda.
Incorreto:
Neste exemplo, um código de erro é usado como um substituto para um texto de solução.
Correto:
1234
0xC0001234
Incorreto:
-1
-67113524
<error code>
.
Neste exemplo, um código de erro é usado para complementar uma mensagem de erro que pode se beneficiar de mais informações.
Geral
Incorreto:
Correto:
Nesses exemplos, a versão correta fala o idioma do usuário, enquanto a versão incorreta é excessivamente técnica.
Esses termos são desnecessários e contrários ao tom encorajador do Windows. Quando usado corretamente, o ícone de erro comunica suficientemente que há um problema.
Incorreto:
Correto:
No exemplo incorreto, os termos "catastrófico" e "falha" são desnecessários.
Incorreto:
Correto:
O exemplo incorreto culpa o usuário usando a voz ativa.
Incorreto:
Arquivo não localizado.
O disco está cheio.
Valor fora do intervalo.
O caractere é inválido.
Dispositivo não disponível.
Esses problemas seriam muito mais fáceis de resolver com nomes, locais e valores específicos.
Correto:
Aguarde enquanto o Windows copia os arquivos para o computador.
Correto:
Lamentamos, mas o Backup da Fabrikam detectou um problema irrecuperável e foi desligado para proteger arquivos em seu computador.
Incorreto:
Correto:
No exemplo incorreto, nomes de produtos completos e símbolos de marca registrada são usados.
Correto:
Neste exemplo, a mensagem de erro seria confusa se o nome do objeto não estivesse entre aspas.
Para obter mais diretrizes e exemplos, consulte Estilo e Tom.
Títulos
Incorreto:
Neste exemplo, o título está sendo usado incorretamente para explicar o problema.
Instruções principais
Incorreto:
Neste exemplo, toda a mensagem de erro é colocada na instrução main, dificultando a leitura.
Neste exemplo, somente o nome do arquivo está na instrução main. O caminho completo está na instrução complementar.
Neste exemplo, o usuário está renomeando um arquivo do Windows Explorer. Nesse caso, o caminho completo do arquivo não é necessário porque é óbvio no contexto.
Principais modelos de instrução
Embora não haja regras rígidas para frases, tente usar os seguintes modelos de instrução main sempre que possível:
É claro que faça alterações conforme necessário para que a instrução main seja gramaticalmente correta e esteja em conformidade com as diretrizes de instrução main.
Instruções complementares
Incorreto:
Neste exemplo, embora o problema e sua solução recomendada sejam possíveis, eles são muito improváveis.
Neste exemplo, nenhuma instrução complementar é necessária; a solução pode ser deduzida trivialmente da instrução de problema.
Correto:
Para reiniciar o Windows, clique em OK.
Incorreto:
Clique em OK para reiniciar o Windows.
No exemplo incorreto, é mais provável que os usuários cliquem em OK por acidente.
Incorreto:
Neste exemplo, provavelmente o problema é com a conexão de rede do usuário, portanto, não vale a pena entrar em contato com um administrador.
Incorreto:
Neste exemplo, a mensagem de erro recomenda incorretamente entrar em contato com o suporte técnico.
Botões de confirmação
Ao se referir a erros:
Exemplo: Se você receber um Disco de CD não há disco cd na mensagem de unidade , insira um novo disco de CD na unidade e tente novamente.
Treinamento
Módulo
Tratar erros usando a linguagem de aplicativo no Dynamics 365 Business Central - Training
Saiba como tratar erros no Dynamics 365 Business Central usando AL (linguagem de aplicativo).