Maneira recomendada de lidar com erros de http dentro do meu aplicativo da web asp.net mvc 5

Eu preciso de uma maneira de lidar globalmente com erros http dentro do meu aplicativo da web asp.net mvc. Eu fiz o seguinte se a chamada para o método de ação for Ajax: -

$(document).ready(function () {
    $(document).ajaxError(function (e, xhr, textStatus, errorThrown) {
        if (xhr.status == 401)
            window.location = "/Account/Login";
        else if (xhr.status == 403 || xhr.status == 404)
            alert(xhr.statusText, 'Error');

        $(".loadingimage").hide();
    });

onde meu método de ação é o seguinte: -

 [CheckUserPermissions(Action = "Edit", Model = "Skill")]
      public async Task<ActionResult> DeleteKBLink(int? skillid,int? linktokbid)
      {
          if (skillid == null || linktokbid==null)
          {
              return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
          }
      var linktokb=     await unitofwork.SkillRepository.FindLinkToKB(linktokbid.Value);
      if (linktokb == null)
              {
                  return new HttpStatusCodeResult(404, "The link has already been deleted.");
              }

mas não tenho certeza de como posso lidar com os erros de http, caso a solicitação não seja ajax? atualmente eu serei redirecionado para a página http não encontrada .. thnaks

questionAnswers(1)

yourAnswerToTheQuestion