Implementar um erro e Estratégia de Tratamento de Exceção

Implementar um erro e Estratégia de Tratamento de Exceção

  

Problema Você deseja implementar um erro limpa e estratégia de manipulação de exceção em seus aplicativos, para fazê-los correr mais suavemente. Teoria da Claro, você poderia argumentar que um erro é uma caixa de diálogo eo outro é gerado no console JavaScript. O facto de um navegador usa uma caixa de diálogo para mostrar um erro e que o outro não é uma questão de browser, e não um problema de erro. Uma forma concisa de classificar os dois erros é dizer que um representa uma página HTML inicialização erro eo outro representa uma página HTML execução erro. Ao implementar uma estratégia de erro, considere a execução técnica. A nível técnico, quando o primeiro caractere é processado, o tempo de execução de JavaScript e pode gerar um erro. Mas se um erro ocorre três personagens no processamento, você é muito bonita sem poder fazer nada sobre isso. Até a página em HTML foi completamente transformado, você não deve permitir manipulação de erro, porque o quadro manipulação de erro não pode ser inicializado corretamente.

E se um erro acontecer naquele momento, seu quadro de manipulação de erro pode sair despreparado. Tendo um quadro incompleto tentar processar um erro só irá confundir, não ajuda. Seu objetivo deve ser para inicializar e preparar o quadro de tratamento de erros quando a página HTML foi completamente transformado. Para saber quando iniciar o tratamento de erros quadro, é preciso saber quando termina a inicialização página HTML e HTML runtime página começa. Tecnicamente, HTML inicialização da página começa quando o primeiro caractere da página HTML é processado. E tecnicamente, HTML runtime página começa quando o evento window.onload é chamado. O evento window.onload é chamado quando a página HTML tiver sido processada, incluindo quadros e imagens, e é o primeiro pedaço de código JavaScript que quando a execução pode esperar que a página HTML para ser concluída. Um exemplo de implementação do evento window.onload poderia ser a seguinte:

 Implementar uma estratégia de tratamento de erros 

Neste exemplo, window.onload está perto do topo da página HTML, mas a função poderia ser colocado em qualquer lugar da página. Na execução do window.onload, o método window.onerror é atribuído como um manipulador de erro global catchall. De uma perspectiva de criação de scripts, é o último ponto em que você pode configurar o browser antes de o navegador começa a sua execução em tempo de execução da página HTML. O manipulador window.onerror recebe três parâmetros: msg, arquivo e localização. Estes três parâmetros representam a mensagem, o arquivo ea localização do arquivo, respectivamente.

No âmbito da implementação do manipulador window.onerror, o manipulador pode reparar e tentar novamente, gerar um log, ou fazer tudo aquilo que é desejado. A implementação window.onerror exemplo, não retorna um valor verdadeiro ou falso, resultando no erro que está sendo propagada para o navegador. Um valor false irá propagar e exibir o erro, enquanto que um valor verdadeiro não tornará o navegador ciente do erro. A aplicação exemplo contém um problema, mas não é com o manipulador de erro. O problema é com a atribuição da função window.onload. Como o código é escrito, existe apenas uma implementação da função para window.onload, e inicializa a função window.onerror. Para uma aplicação Ajax de qualquer complexidade, não é possível atribuir um método window.onload único, uma vez que tal hogging ser o método. Solução A solução envolve a criação de um delegado de JavaScript, como ilustra o seguinte código-fonte.

 Fonte: / website / ROOT / ajaxrecipes / javascript / functionsareobjects.html  Implementar uma estratégia de tratamento de erros 
 

Na execução onload vez, a função ops.delegate é usado para criar um delegado. No momento, acho que de um delegado como uma maneira de ter um resultado único de chamada de método em vários métodos sendo chamado. (Você pode encontrar mais detalhes sobre os delegados na Receita 2-17.) A aplicação da ops.delegate irá testar se uma função já está atribuído a window.onload. Se uma função é atribuída, em seguida, a função existente é convertido em um método delegado, a nova função e está associado com o delegado.

Então, quando o navegador solicita window.onload, ele irá chamar tanto a função original ea nova função. Em teoria, um número infinito de funções pode ser associado a um delegado. O importante a lembrar é que várias funções podem ser associados a uma única propriedade, que é necessária para o método window.onload. Os testes de código a seguir a rotina manipulação de erro:

testsToRun var = (throw_exception: function () (throw new Error ( "este é um erro");));

Quando a função throw_exception é chamado, uma exceção é gerada por instanciar o objeto de erro e, em seguida, jogá-lo usando a palavra-chave throw. Em teoria, você pode jogar qualquer objeto, mesmo que se pareça com um erro. Claro, erro usando desta maneira é a opção mais eficiente, e isso na verdade é a base da sua estrutura de tratamento de erros. Você precisa de algo para capturar um erro, e você precisa jogar um erro. Como você capturar e processar o erro é de contexto específico, para lhe mostrar algo que eu ou outro programador implementou em outro aplicativo não vai ajudá-lo aqui. Outra maneira de capturar um erro é através de um manipulador de exceção, como segue:

function Gerar () (throw new Error ();) function CatchAll () (try (gerar ();) catch (e) (/ / Faz alguma coisa com o erro e;))

Neste exemplo, são duas funções: Gerar e Catchall. Gerar é usado para gerar uma exceção, e CatchAll é usada para capturar a exceção. Em JavaScript, você pode capturar uma exceção usando o try e catch-chave, que captura todos os erros e exceções que ocorrem enquanto o código no bloco try é executado. Quando uma exceção é gerada, o código dentro do bloco catch é executado. No exemplo, o erro é gerado por Gere e capturados pelo bloco de captura, que então gera o erro. Quando o erro é acionada novamente, a exceção será travado no método window.onload. O try e catch bloco é extremamente útil, pois todos os erros e exceções podem ser capturadas sem o navegador seja o mais sábio. Mas ter um mecanismo catchall pode fazer a depuração do JavaScript mais complicado, porque os erros que ocorrem são processadas sem que o desenvolvedor de ser o mais sábio. Você pode ser tentado a usar um try e catch bloco como uma técnica de programação geral, mas que seria uma má idéia.

Um erro que é apresentada é uma exceção e uma exceção é algo que não deveria ter acontecido e é imprevisível. Uma exceção nunca deve acontecer, visto que um erro poderia acontecer. A melhor maneira de ilustrar a diferença entre e erro e uma exceção é o exemplo a seguir, que mostra como uma exceção pode ser usado para capturar um erro.

Nota Este exemplo poderia ter escrito de forma mais sucinta usando outras palavras-chave, mas o ponto aqui é simplesmente mostrar a diferença entre usar uma decisão para testar uma variável indefinida e com uma exceção que é executado se a variável passa a ser indefinido.

func var; try (func ();) catch (e) (func = Default; func ();)

O exemplo de exceção ilustra como um manipulador de exceção (try catch e palavras-chave) pode ser usado para capturar uma exceção se a variável função não é atribuída a um método. Func Calling irá gerar uma exceção e acionar o código no bloco catch. No bloco de captura da exceção, a func variável é atribuída uma função padrão que funciona e é chamado. Usando um bloco de exceção desta forma é incorreta, porque o código como está escrito espera que a função não pode ser atribuída. Se há uma expectativa de funcionamento, não sendo atribuído, em seguida, o código deve ser escrito para refletir isso. A melhor maneira de escrever o mesmo código é o seguinte:

var func; if (typeof (Func)! = function ") (func = Default;) func ();

No exemplo de código reescrito, o teste de controlo função para se certificar de que está fazendo referência a uma função de função. Se a função não faz referência a uma função, então função é atribuída a função padrão padrão. Então, quando é chamado de função, nenhuma exceção será gerada. Quando você escrever o código, os erros e as exceções serão gerados, e você terá uma estratégia para lidar com eles. Manter os seguintes pontos em mente quando você está desenvolvendo uma estratégia de erro e exceção:

• Carga e processamento de uma página HTML envolve duas fases: inicialização da página HTML e HTML execução da página.

• Durante a inicialização da página HTML, não ative o seu erro e estratégia exceção fazê-lo, poderia ter resultados imprevisíveis.

• Inicializar o seu erro e estratégia de manipulação de exceção no método window.onload.

• Não assuma que você está lidando com apenas um pedaço de código que precisa ser chamado pelo método window.onload. Use um delegado para permitir múltiplas funções para ser chamado.

• Erros e exceções não são a mesma coisa. Os erros podem ser antecipadas e tratadas, mas as exceções não podem.

• Você pode definir um manipulador de exceção global através da aplicação do método window.error.

• Para lidar com exceções locais, você pode usar um bloco try e catch.

um artigo submetido por Sonja Lande


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "Aplicação de um erro e Exception Handling Strategy" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 180 users browsing the articles directory   


  

|