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: 144
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 Ruby On Rails
Minha versão do Rails não suporta mais os métodos start_form_tag e end_form_tag. E agora?
Limpando (resetando) uma sessão Ruby On Rails
Criando caixas de texto de uma única linha usando o método text_field_tag
Resolvendo problemas de acentuação nos controllers e views do Ruby On Rails
Obtendo as checkboxes marcadas e seus respectivos valores
Usando o método options_for_select para criar elementos HTML select com valores e rótulos diferentes
Como inserir valores na sessão em um Action Controller e acessá-los em outra action no mesmo controlador
Saiba o que são e como usar Controllers em suas aplicações Ruby On Rails
Como pesquisar um registro por id usando o método find()
Fornecendo vários ids ou uma matriz de ids ao método find()
Veja dicas, truques e anotações de outras linguagens
PHP - Chamando o construtor de uma superclasse a partir da classe derivada
VB.NET - Transformando todos os caracteres de uma string em letras maiúsculas
Ruby - Como criar um array de strings usando a notação %w
Python - Verificar se uma string contém apenas caracteres de espaço
Python - Obtendo o valor do radio button selecionado usando Python CGI
MySQL - Como usar a função ADDDATE() para adicionar dias a uma data
C# (CSharp) - Como criar uma ArrayList vazia e verificar a quantidade de elementos na capacidade padrão
JavaScript - Como elevar a constante e a uma determinada potência
Adobe AIR - Como obter a altura total e a altura útil de uma janela Adobe AIR
PHP - Como destruir uma sessão PHP e todos os dados associados a ela

       

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