Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro em exceção


Rafael Laurindo

Pergunta

Pessoal, ao fazer isso

classe Exception

Exception = {
     class : function(msg){
     if (msg)
         document.write(msg)
 }
codigo html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Tests</title>
<script type="text/javascript" src="include.js"></script>
<script type="text/javascript">
    include('Exception.js')
    function teste(id)
    {
        if(id)
            throw new Exception.class ('Id defined!')
    }
</script>

</head>
<body>
<form>
    <input type="text" id="txtTeste" onkeydown="teste(this.id)"/>
</form>
</body>
</html>

Estou tendo isso de resposta no firebug do firefox: uncaught exception: [object Object]

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

O uncaught exception ocorre porque a exceção não foi tratada, e o erro é escrito como [object Object] porque é necessário mostrar o objeto como string e a conversão padrão de um objeto para string retorna sempre [object Object].

A solução para isso é modificar a forma como o objeto é convertido para texto, o que pode ser feito a partir do método toString. Exemplo:

Exception = {
    class: function (msg) {
        this.toString = function () {
            return "Erro: '"+msg+"'"
        }
        if (msg)
            document.write(msg)
    }
}
function teste(id) {
    if (id)
        throw new Exception.class('Id defined!')
}

Obs.:

Juntei o código da classe ao arquivo para facilitar.

Link para o comentário
Compartilhar em outros sites

  • 0

Não é bem isso. O throw aceita qualquer objeto, mas o valor que é mostrado no console de erros precisa ser uma string. Você pode enviar um objeto ao throw e trabalhar com ele no catch, a função toString foi criada apenas para que o valor seja exibido corretamente no firebug.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...