Tratamento de exceções no MVC [2 principais métodos para lidar com exceções]

Publicados: 2020-12-29

O tratamento de exceções no MVC é usado principalmente ao criar aplicativos de linha de negócios que exigem especificações e condições específicas e têm requisitos exclusivos.

Vamos entender o que é tratamento de exceção em profundidade e como ele ajuda você com seus aplicativos.

Índice

O que é tratamento de exceção?

É o processo de lidar e responder a condições excepcionais que ocorrem e requerem métodos específicos; isso precisa ser incorporado em aplicativos de negócios para aprimorar o resultado e garantir que todos os requisitos sejam tratados adequadamente.

Existem duas maneiras significativas em que essas exceções são tratadas

  • O método de captura e bloqueio
  • O método de tratamento de erros do aplicativo.

No entanto, estes não são os únicos métodos utilizados para o processo.

Aqui, discutiremos as diferentes etapas e técnicas que você pode usar para gerenciar exceções no MVC.

O Método de Manipulação Try-Catch

O método catch and block é considerado o método tradicional usado para tratamento de exceções em aplicações baseadas em MVC. Você registrará as informações de erro usando este método.

Experimentar

{ adicionar uma exceção;}

catch (nome da exceção)

{

return View (“Erro”);

}

Você insere a condição de exceção no blog try e adiciona o nome da exceção para o bloco catch. Quando a exceção é capturada no bloco catch, ela retornará o erro que ela menciona.

Isso também pode ser usado para manipular e registrar todos os erros no aplicativo.

Método OnException

Este método permite que você substitua o método OnException dentro da classe do controlador. O código de erro 500 é usado para tratar todos os erros registrados resultantes do tratamento de exceção no MVC .

Basicamente, você pode registrar e especificar a exibição da exceção com este método sem o loop try. Você não precisa habilitar a configuração <customErrors> no web.config para começar com este método.

classe pública HomeController: Controlador

{

public ActionResult Contact()

{

string msg = null;

ViewBag.Message = msg.Length;

return Visão();

}

substituição protegida void OnException(ExceptionContext filterContext)

{

filterContext.ExceptionHandled = true;

//Logo o erro!!

//Redirecionar para ação

filterContext.Result = RedirectToAction(“Erro”, “InternalError”);

// OU retorna uma visão específica

filterContext.Result = new ViewResult

{

ViewName = “~/Views/Error/InternalError.cshtml”

};

}

}

Dê uma olhada no código acima, e você notará que OnException é um método void, e leva o objeto ExceptionContext como argumento.

Este argumento contém todas as informações necessárias para registrar o erro. Se você definir ExceptionHandled=true, poderá registrar as ações geradas de um controlador específico com facilidade.

Atributo HandleError

Este é mais um método popular de lidar com a exceção e gerenciar erros no MVC do seu aplicativo. Se você notar erros criados por um método de ação ou um controlador, você deve usar esse método.

Com esse atributo, você pode optar por exibir uma exibição personalizada para a exceção específica. Isso pode ocorrer no método de ação ou no controlador.

Novamente, esse método também é usado quando você está gerenciando erros com o código 500. Você não pode registrar exceções usando esse método.

Existe uma maneira específica de adicionar esse atributo para que ele funcione a seu pedido. Você deve adicionar o filtro de atributo HandleError dentro do método FilterConfig.RegisterGlobalFilters().

Junto com isso, você deve garantir que o modo de erros personalizados <CustomErrors = “on”> esteja sempre ativado no web.config. Neste ponto, você pode adicionar o atributo ao modo ativo.

classe pública HomeController: Controlador

{

[HandleError]

public ActionResult Contact()

{

string msg = null;

ViewBag.Message = msg.Length;

return Visão();

}

}

O código que acabamos de mencionar funciona melhor para as necessidades de tratamento de contexto e exceção.

Aqui o atributo é configurado para o método de ação Contact(). Quando o processo for compilado, você verá o Error.cshtml exibido no modo de visualização.

Isso ocorrerá somente quando ocorrer uma exceção. Esta é a visualização padrão em todos os casos excepcionais. Você também pode usar este atributo para configurar as várias páginas para gerenciar os diferentes tipos de exceções.

Embora esse atributo funcione perfeitamente para tratamento de erros e gerencie todos os tipos de configurações, pode não funcionar em todos os lugares. Escolha-o para alguns casos em que você acredita que ele ajudará sua aplicação.

O método não oferece suporte às exceções de log. Ele consegue capturar apenas exceções HTTP dentro do código 500. Ele não pode capturar as exceções de outros controladores. Portanto, não é um atributo que você possa considerar para todas as ocasiões e necessidades.

Herdando de HandleError

Você pode até usar esse método para lidar com exceções. O método acima que discutimos não permite que você reutilize os componentes, o que pode ser considerado uma desvantagem.

Você não pode funcionar se tiver que manter a codificação para todas as exceções que precisam ser registradas.

Como resultado, você terá que usar esta extensão. Ele permite que você herde do atributo HandleError e use-o no controlador específico. Como resultado, você pode manipular exceções sem precisar codificar com muita frequência.

Leia também: Perguntas da entrevista sobre tratamento de exceções

Evento Application_Error

O evento Application_Error é mais um método para tratar o erro do aplicativo e gerenciar as exceções. Esta parte requer que você controle o evento Application_Error no arquivo global.asax.

Você pode acionar esse evento para todos os tipos de códigos de erro e tratamento de exceção no MVC , tornando-o mais fácil de usar e um dos melhores métodos para lidar com exceções.

Isso usa o método de log de erros primário, que pode ser usado para gerenciar todas as exceções que não são tratadas no aplicativo.

Gerenciando erros HTTP

O método mencionado aqui não pode manipular nenhuma das exceções HTTP. Estamos falando de exceções como “Arquivo não encontrado” e outras mensagens de erro comuns que você provavelmente receberá.

Você precisará inserir os detalhes do erro e o código do erro na sintaxe para gerenciar essas exceções.

Você precisará observar todos os códigos de erro e mensagens possíveis que provavelmente obterá como parte do aplicativo antes de liberar a sintaxe.

Para aprimorar seu conhecimento de aplicativos de linha de negócios e obter proficiência em linguagens de programação, junte-se ao upGrad .

Com uma variedade de cursos e uma variedade de opções de carreira, você aumentará suas oportunidades de carreira.

Conecte-se com nossos especialistas ou agende uma ligação conosco para saber mais sobre as opções personalizadas para você.

Inscreva-se em cursos de engenharia de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Ao lidar com o tratamento de exceções no MVC , você precisa ter certeza de que o método que você está optando permite registrar todos os erros possíveis. Você deve poder reutilizar os componentes e gerenciar todos os erros do aplicativo. Saiba mais sobre o tratamento de exceções em Java.

Se você deseja que um único método trate todas as exceções possíveis, você deve optar pelo método Global Application_Error . Ele certifica-se de registrar todos os erros junto com os <CustomErrors> e garante que eles sejam registrados no Web.Config.

Com esse método, o usuário é redirecionado para as páginas específicas quando encontra o erro. O tratamento de exceções é um dos conceitos centrais do desenvolvimento de aplicativos usando ASP.Net MVC.

Esperamos que este artigo tenha sido útil para aprender sobre Manipulação de Exceções no MVC; por favor, explore nossos blogs para saber mais sobre as diferentes aplicações.

Se você estiver interessado em aprender mais sobre desenvolvimento full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

Torne-se um Desenvolvedor Full Stack

Inscreva-se agora para Mestrado em Engenharia de Software