SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
JavaScript: Erros
Carlos Santos
LabMM 3 - NTC - DeCA - UA
Aula 13, 07-11-2011
(Capítulo 4 do livro Beginning JavaScript)
O meu código não funciona. O que fazer?

• Erros:

 • um simples erro pode implicar que todo o código JavaScript não funcione!

• É necessário:

 • aprender a detetar os erros para posteriomente os corrigir;

 • para isso é importante:

  • conhecer os erros mais típicos,

  • dominar as ferramentas que nos podem auxiliar na tarefa de debug.
#1. Variáveis não definidas

• definição de variáveis

   abc = 23;

   var abc = 23;

• mas o que acontece se se utilizar a variável numa instrução sem que esta
  tenha sido previamente definida? Exemplos:

   alert (abc);



   function foo(parametrOne) {

        alert(parameterOne); }
#2. Sensibilidade ao case

• Um erro muito comum e muitas vezes difícil de detetar sem ajuda!

• Onde estão os erros?

   var myName = “Jeremy”;

   If (myName == “jeremy”)

     alert(myName.toUppercase());
#3. Falta fechar uma chaveta! }

• onde está o erro?

   function myFunction() {
   x = 1;
   y = 2;
   if (x <= y) {
   if (x == y) {
   alert(“x equals y”); }
   }
   myFunction();
#3. Falta fechar uma chaveta! }

• mais fácil com indentação?

   function myFunction()
   {
     x = 1;
     y = 2;
     if (x <= y)
     {
         if (x == y)
         {
            alert(“x equals y”);
         }
     }
   myFunction();
#4. Falta fechar os parêntesis! }

• onde está o erro?

 if (myVariable + 12) / myOtherVariable < myString.length)
#5. Usar = em vez de ==

• onde está o erro?

 var myNumber = 99;
 if (myNumber = 101)
 {
   alert(“myNumber is 101”);
 }
 else
 {
   alert(“myNumber is “ + myNumber);
 }
#6. Usar um método como propriedade e vice-
versa

• onde estão os erros?

 var nowDate = new Date();
 alert(nowDate.getMonth);

 var myString = “Hello, World!”;
 alert(myString.length());
#6. Usar um método como propriedade e vice-
versa

• É muito importante saber distinguir métodos e propriedades

 var nowDate = new Date();
 alert(nowDate.getMonth());

 var myString = “Hello, World!”;
 alert(myString.length);
#6. Usar um método como propriedade e vice-
versa

• Um caso “estranho” e que pode parecer quebrar a regra.

 function foo()
 {
   alert(“I’m in foo()!”).
 }

 function bar(fpToCall)
 {
   alert(“Calling passed function”).
   fpToCall();
 }

 bar(foo);
#7. Faltam sinal de “+” na concatenação de strings

• Onde está o erro?

 var myName = “Jeremy”;
 var myString = “Hello”;
 var myOtherString = “World”;
 myString = myName + “ said “ + myString + “ “ myOtherString;
 alert(myString);
#7. Faltam sinal de “+” na concatenação de strings

• Onde está o erro?

 var myName = “Jeremy”;
 var myString = “Hello”;
 var myOtherString = “World”;
 myString = myName+“ said “+myString + “ “ + myOtherString;
 alert(myString);
Prevenir erros

• Experimentar o código em todos os browsers que devem ser suportados
  pela aplicação:

  • IE 6???

  • IE 7 != IE 8 != IE 9 (e mesmo os modos de emulação não são exatamente
    iguais...)

  • Safari... o novo IE? :(

• Validar toda a informação introduzida pelo utilizador

• Mesmo assim podem acontecer situações imprevisíveis que, por exemplo,
  podem depender das condições de rede de um determinado utilizador...
try...catch

• funcionam em conjunto e permite intersectar erros de execução e lidar
  com eles de forma apropriada.

 <script type=”text/javascript”>
 try
 {
   alert(‘This is code inside the try clause’);
   alert(‘No Errors so catch code will not execute’);
 }
 catch(exception)
 {
   alert(“The error is “ + exception.message);
 }
 </script>
debugging

• sem uma ferramenta de debug apropriada o melhor método é utilizar o alert()
  para gerar mensagens a informar, por exemplo, do valor de determinadas
  variáveis.

  • o alert() também pode ser utilizado para ter a certeza se um determinado
    script ou condição está a ser executado.

• felizmente não faltam ferramentas adequadas nos browsers atuais:

  • Firefox firebug

  • Safari Web Inspector

  • Chrome developer tools

  • Opera Dragonfly

  • IE developer tools
debugging: principais funcionalidades

• Breakpoints

  • Watches

  • Seguir o código passo-a-passo

• Consola

• Stack Window

Mais conteúdo relacionado

Mais procurados

Nada sobre JavaScript
Nada sobre JavaScriptNada sobre JavaScript
Nada sobre JavaScriptLuis Vendrame
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticasFrancke Peixoto
 
Unidade6 roteiro pentest
Unidade6 roteiro pentestUnidade6 roteiro pentest
Unidade6 roteiro pentestLeandro Almeida
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em JavaWilson Júnior
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Eder Samaniego
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em PhpAlmir Mendes
 
[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finallyLoiane Groner
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catchLoiane Groner
 
[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de VariaveisLoiane Groner
 
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throwsLoiane Groner
 

Mais procurados (20)

Nada sobre JavaScript
Nada sobre JavaScriptNada sobre JavaScript
Nada sobre JavaScript
 
Algoritmos Aula 07
Algoritmos Aula 07Algoritmos Aula 07
Algoritmos Aula 07
 
6 excecoes
6 excecoes6 excecoes
6 excecoes
 
Aula05 - Lógica de Programação
Aula05 - Lógica de ProgramaçãoAula05 - Lógica de Programação
Aula05 - Lógica de Programação
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticas
 
Unidade6 roteiro pentest
Unidade6 roteiro pentestUnidade6 roteiro pentest
Unidade6 roteiro pentest
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php
 
[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally
 
Vim
VimVim
Vim
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch
 
[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis
 
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Aula python
Aula pythonAula python
Aula python
 
Sims 2
Sims 2Sims 2
Sims 2
 
JAVA - Tratamento de Erros
JAVA - Tratamento de ErrosJAVA - Tratamento de Erros
JAVA - Tratamento de Erros
 
Python + algoritmo
Python + algoritmoPython + algoritmo
Python + algoritmo
 

Semelhante a LabMM3 - Aula teórica 13

Semelhante a LabMM3 - Aula teórica 13 (20)

Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Minicurso php
Minicurso phpMinicurso php
Minicurso php
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java I
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
Google android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPEGoogle android p/ Noobs - SUPER 2014 - UPE
Google android p/ Noobs - SUPER 2014 - UPE
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
Programação Funcional usando C# e F#
Programação Funcional usando C# e F#Programação Funcional usando C# e F#
Programação Funcional usando C# e F#
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Javascript
JavascriptJavascript
Javascript
 
Debugging node
Debugging nodeDebugging node
Debugging node
 
Tratamento de excees slide trabalho
Tratamento de excees slide trabalhoTratamento de excees slide trabalho
Tratamento de excees slide trabalho
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SE
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
 

Mais de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)Carlos Santos
 

Mais de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)T14_LM3: Animação (2013-2014)
T14_LM3: Animação (2013-2014)
 

Último

Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 

Último (20)

Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 

LabMM3 - Aula teórica 13

  • 1. JavaScript: Erros Carlos Santos LabMM 3 - NTC - DeCA - UA Aula 13, 07-11-2011 (Capítulo 4 do livro Beginning JavaScript)
  • 2. O meu código não funciona. O que fazer? • Erros: • um simples erro pode implicar que todo o código JavaScript não funcione! • É necessário: • aprender a detetar os erros para posteriomente os corrigir; • para isso é importante: • conhecer os erros mais típicos, • dominar as ferramentas que nos podem auxiliar na tarefa de debug.
  • 3. #1. Variáveis não definidas • definição de variáveis abc = 23; var abc = 23; • mas o que acontece se se utilizar a variável numa instrução sem que esta tenha sido previamente definida? Exemplos: alert (abc); function foo(parametrOne) { alert(parameterOne); }
  • 4. #2. Sensibilidade ao case • Um erro muito comum e muitas vezes difícil de detetar sem ajuda! • Onde estão os erros? var myName = “Jeremy”; If (myName == “jeremy”) alert(myName.toUppercase());
  • 5. #3. Falta fechar uma chaveta! } • onde está o erro? function myFunction() { x = 1; y = 2; if (x <= y) { if (x == y) { alert(“x equals y”); } } myFunction();
  • 6. #3. Falta fechar uma chaveta! } • mais fácil com indentação? function myFunction() { x = 1; y = 2; if (x <= y) { if (x == y) { alert(“x equals y”); } } myFunction();
  • 7. #4. Falta fechar os parêntesis! } • onde está o erro? if (myVariable + 12) / myOtherVariable < myString.length)
  • 8. #5. Usar = em vez de == • onde está o erro? var myNumber = 99; if (myNumber = 101) { alert(“myNumber is 101”); } else { alert(“myNumber is “ + myNumber); }
  • 9. #6. Usar um método como propriedade e vice- versa • onde estão os erros? var nowDate = new Date(); alert(nowDate.getMonth); var myString = “Hello, World!”; alert(myString.length());
  • 10. #6. Usar um método como propriedade e vice- versa • É muito importante saber distinguir métodos e propriedades var nowDate = new Date(); alert(nowDate.getMonth()); var myString = “Hello, World!”; alert(myString.length);
  • 11. #6. Usar um método como propriedade e vice- versa • Um caso “estranho” e que pode parecer quebrar a regra. function foo() { alert(“I’m in foo()!”). } function bar(fpToCall) { alert(“Calling passed function”). fpToCall(); } bar(foo);
  • 12. #7. Faltam sinal de “+” na concatenação de strings • Onde está o erro? var myName = “Jeremy”; var myString = “Hello”; var myOtherString = “World”; myString = myName + “ said “ + myString + “ “ myOtherString; alert(myString);
  • 13. #7. Faltam sinal de “+” na concatenação de strings • Onde está o erro? var myName = “Jeremy”; var myString = “Hello”; var myOtherString = “World”; myString = myName+“ said “+myString + “ “ + myOtherString; alert(myString);
  • 14. Prevenir erros • Experimentar o código em todos os browsers que devem ser suportados pela aplicação: • IE 6??? • IE 7 != IE 8 != IE 9 (e mesmo os modos de emulação não são exatamente iguais...) • Safari... o novo IE? :( • Validar toda a informação introduzida pelo utilizador • Mesmo assim podem acontecer situações imprevisíveis que, por exemplo, podem depender das condições de rede de um determinado utilizador...
  • 15. try...catch • funcionam em conjunto e permite intersectar erros de execução e lidar com eles de forma apropriada. <script type=”text/javascript”> try { alert(‘This is code inside the try clause’); alert(‘No Errors so catch code will not execute’); } catch(exception) { alert(“The error is “ + exception.message); } </script>
  • 16. debugging • sem uma ferramenta de debug apropriada o melhor método é utilizar o alert() para gerar mensagens a informar, por exemplo, do valor de determinadas variáveis. • o alert() também pode ser utilizado para ter a certeza se um determinado script ou condição está a ser executado. • felizmente não faltam ferramentas adequadas nos browsers atuais: • Firefox firebug • Safari Web Inspector • Chrome developer tools • Opera Dragonfly • IE developer tools
  • 17. debugging: principais funcionalidades • Breakpoints • Watches • Seguir o código passo-a-passo • Consola • Stack Window