Precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Arquivo de Códigos - Página Inicial
Códigos-fonte
» Códigos-fonte e exemplos completos
Linguagens
» ActionScript
» Adobe AIR
» Adobe Flex
» AJAX
» C
» C#
» C++
» CSS
» Delphi
» DHTML - Dynamic HTML
» HTML/XHTML
» Java
» JavaFX
» JavaScript
» Java Servlets
» JSP - Java Server Pages
» Perl
» PHP
» PHP-GTK
» Python
» Ruby
» Tcl/Tk
» VB.NET
Bancos de Dados
» IBM DB2
» MySQL
Frameworks
» CodeIgniter
» jQuery
» JSF - Java Server Faces
» Qt
» Ruby On Rails
» Struts
» Struts 2
» wxWidgets
» Zend Framework
Container/Servidor
» Apache Tomcat
» Apache Web Server
Ferramentas
» Apache Ant
» iTextSharp (iText#)
Referências
» CSS1 e CSS2
» JavaScript
Serviços On-Line
» Qual é meu IP?
» Tabela Cores HTML I
» Tabela Cores HTML II
» Lista de Mime Types
» Códigos Teclas Virtuais
Usuários On-Line
Visitantes: 136
PHP
O que há de novo no PHP 5?
40 dicas e truques sobre como trabalhar com datas e horas em PHP
60 dicas e truques sobre como trabalhar com strings e caracteres em PHP
PHP e a Orientação a Objetos - POO (Curso Completo)

DHTML
Curso completo de DHTML para iniciantes

CSS
Como definir uma imagem de fundo fixa na página
Definindo uma imagem de fundo para botões HTML
Você está aqui: Inicio -> Tutoriais -> JavaScript
Tratamento de Erros e Técnicas de Detecção de Browsers :: Aprenda a atirar suas próprias exceções em JavaScript
O termo "atirar uma exceção" é muito conhecido pelos programadores Java, uma vez que o mecanismo existente em JavaScript é bem parecido com aquele da linguagem Java. "Atirar uma exceção" significa a criação de um objeto que representa o tipo de erro a ser tratado. É importante notar que, o restante do código do bloco em que a exceção é atirada nunca será executado. Vamos ver um exemplo:


<html>
<head>
<title>Tratamento de erros</title>
</head>
<body>

<script language="javascript">
<!--
  function MailFormatoException(mail){
    this.email = mail;
    this.mensagem = "não é um endereço de e-mail válido.";
    this.toString = function(){
      return this.email + " " + this.mensagem;
    };
  }

  function validarEMail(email){
    if(email.indexOf("@") > -1){
      return true;
    }
    else{
      throw new MailFormatoException(email);
    }
  }

  try{
    var mail = "suporte.recomende.com";
    var valido = validarEMail(mail);
    if(valido){
      window.alert("Endereço de e-mail válido.");
    }
  }
  catch(e){
    window.alert(e);
  }
//-->
</script>

</body>
</html>


Execute esta página e verá uma mensagem de erro com o seguinte texto:

suporte.recomende.com não é um endereço de e-mail válido.

O código para este exemplo é um daqueles que só pode ser entendido quando analisado com muita atenção. Comecemos com o objeto MailFormatoException:

function MailFormatoException(mail){
  this.email = mail;
  this.mensagem = "não é um endereço de e-mail válido.";
  this.toString = function(){
    return this.email + " " + this.mensagem;
  };
}


Veja que sempre que uma nova instancia deste objeto é criado, nós fazemos o fornecimento de um valor para o argumento mail. Este valor é usado para inicializar a propriedade email do objeto:

this.email = mail;

Como este objeto será usado para indicarmos situações de erro, é mais que adequado que ele possua uma propriedade para esta finalidade. Esta propriedade se chama mensagem e é inicializada na linha:

this.mensagem = "não é um endereço de e-mail válido.";

Finalmente, o objeto deverá ter um método toString, que é chamado automaticamente sempre que o método para o qual o objeto estiver sendo fornecido, retornar um valor do tipo String. Veja como este método retorna uma concatenação das propriedades email e mensagem:

this.toString = function(){
  return this.email + " " + this.mensagem;
};


Veja agora o código para uma função que verifica se um determinado endereço de e-mail é válido:

function validarEMail(email){
  if(email.indexOf("@") > -1){
    return true;
  }
  else{
    throw new MailFormatoException(email);
  }
}


A validação deste endereço de e-mail é bem simples. Tudo que fazemos é verificar a ocorrência do símbolo @ no endereço. Se você quiser aprender a fazer validações mais avançadas, clique aqui e acesse nosso tutorial sobre Expressões Regulares em JavaScript.

Veja que, se o endereço de e-mail for válido nós simplesmente retornamos um valor true para o chamador da função. Se o valor não for válido nós usamos a instrução throw para criar uma instancia do objeto MailFormatoException e fornecemos o valor de email sendo validado. Neste ponto quaisquer outras linhas de código dentro desta função não mais seriam executados. A execução do código volta para o ponto onde a função validarEMail foi chamada.

Observe agora o código para o bloco try...catch:

try{
  var mail = "suporte.recomende.com";
  var valido = validarEMail(mail);
  if(valido){
    window.alert("Endereço de e-mail válido.");
  }
}
catch(e){
  window.alert(e);
}


Na primeira linha do bloco try nós criamos uma variável chamada mail e atribuímos a ela o endereço de e-mail a ser validado. Em seguida criamos uma variável chamada valido e atribuímos a ela o resultado de uma chamada à função validarEMail fornecendo o endereço a ser verificado. É aqui que as coisas acontecem, se a função retornar true, o restante do bloco try é executado. Ao contrário, se o resultado for uma instancia do objeto MailFormatoException, a execução salta diretamente do bloco try para o bloco catch. Tudo que temos a fazer é exibir as informações do erro:

catch(e){
  window.alert(e);
}


Lembre-se de que a variável "e" representa o objeto MailFormatoException. Como o método alert do objeto window retorna um tipo String, o método toString de nosso objeto é chamado implicitamente e temos o resultado que esperávamos.

Ufa! Que código! Entendeu tudo mesmo?
Este tutorial contém as seguintes seções:
  1. Introdução
  2. Como verificar se JavaScript está desabilitado no browser
  3. Detectando erros a partir do evento onerror do objeto window
  4. Obtendo informações sobre a mensagem de erro, a página e a linha da ocorrência
  5. Não consegue consertar os erros? Oculte-os
  6. Tratamento de erros usando o bloco try...catch
  7. Obtendo informações sobre erros a partir de um bloco try...catch
  8. Como usar o bloco finallly para complementar o bloco try...catch
  9. Aprenda a atirar suas próprias exceções em JavaScript
  10. Obtendo o nome e versão do navegador do usuário
  11. Aprenda a detectar browsers de acordo com a funcionalidade suportada
  12. Como verificar se o browser suporta o DOM da W3C
  13. AJAX? Verifique se o browser suporta o objeto XMLHttpRequest
 
 
Arquivo de Códigos - Página Inicial
Veja dicas, truques e anotações de JavaFX
Como maximizar uma janela Frame ao clicar em um botão
Como definir o texto de um TextField em tempo de execução
Como fechar uma janela Frame ao clicar em um botão
Como obter o texto digitado em um TextField e exibí-lo em uma caixa de mensagem
Restaurando uma janela Frame ao clicar em um botão
Como direcionar (setar) o foco para um determinado TextField
Como detectar um clique em um Button e exibir uma caixa de mensagem
Minimizando uma janela Frame ao clicar em um botão
Definindo a cor de fundo para uma janela Frame em tempo de execução
Habilitando ou desabilitando um TextField
Veja dicas, truques e anotações de outras linguagens
ActionScript - Gerando senhas aleatórias usando ActionScript
JSP (Java Server Pages) - Criando sua primeira tag customizada
Python - Percorrendo uma lista usando o laço for e índices
C# (CSharp) - Saiba mais sobre os modos de edição de um DataGridView
JavaScript - Como obter o logaritmo natural de 10
JavaScript - Como codificar a URL de uma página
Java - Como usar o método addElement para adicionar elementos a um Vector
VB.NET - Removendo todos os itens de uma ListBox de uma só vez
Adobe Flex - Aprenda a definir as propriedades dos componentes Flex de três maneiras diferentes
Delphi - Entenda e aprenda a usar o controle TComboBox em suas aplicações Delphi

       

http://www.arquivodecodigos.net
:: Arquivo de Códigos - Softwares e Consultoria em Programação ::
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva

Página Inicial Contatos Pesquisar Mapa do Site