Você está na página 1de 23

Curso de Anlise e Desenvolvimento de Sistemas Tcnicas da Programao Aula 04

Aula 4
Aula 4

Reviso e concluso de expresses regulares Correo dos exerccios Funes Tratamento de erros

Correo Exerccios

Inverter um array Expresso regular para CEP Expresso regular para CPF

Funes

Funo um conjunto de cdigo que executa uma tarefa especfica O uso de funes e objetos me !ora a coeso" egibi idade e reuso do cdigo fonte #ma funo possui nome" argumentos e va or de retorno$

Funes

%eus argumentos podem ser passados por va or &tipos primitivos' ou por refer(ncia &objetos')

*bra o arquivo +funcao,-$!tm . e execute

Funes

/odem ou no ser dec arados argumentos para a funo Os argumentos devem ser passados na ordem que foram dec arados O comando return opciona *brir o arquivo funcao0$!tm

Funes

1etorno sem nada d2 +undefined.3

function f&n' 4 return) 5 function teste&' 4 6indo6$a ert&f&-'') 5

Funes

7o podemos a terar o va or dos argumentos)

8 %e forem tipos primitivos) 8 %e forem Objetos" podemos a terar suas propriedades" mas no suas refer(ncias) *bra o arquivo +modifica$!tm .

Funes
Podemos passar para funes mais argumentos do ue foram declarados e acess!"los atrav#s da vari!vel arguments function my9oncat&separator' 4 var resu t : ;;) << initia i=e ist << iterate t!roug! arguments for &var i : -) i > arguments$ engt!) i??' 4 resu t ?: arguments@iA ? separator) 5 return resu t) 5 my9oncat&;" ;" ;red;" ;orange;" ;b ue;') %ada3 red" orange" b ue"

Funes
Escopo de vari!veis$ B oba 3 Cari2ve dec arada fora de uma funo ento acessve em todas as funes Doca 3 Cari2ve dec arada dentro de uma funo ento acessve somente na funo Funo em expresso E possve atribuir a uma vari2ve uma funo Fsta vari2ve pode ser passada como parGmetros para outras funes

Funes

Passando funes como par%metro var square : function&number' 4return number H number5) function map&f"a' 4 var resu t : ne6 *rray) for &var i : ,) i I: a$ engt!) i??' resu t@iA : f&a@iA') return resu t) 5 map&square" @," -" 0" J" -,A')

Funes

&uando uma funo em 'avascript # criada ela carrega consigo o contexto de vari!veis (fora do escopo) utili*adas pela funo +closure,

function maKeFunc&' 4 var name : ;Lo=i a;) function disp ay7ame&' 4 a ert&name') 5 return disp ay7ame) 5 var myFunc : maKeFunc&') myFunc&')

Excees
Abra o arquivo voa.html e clique no boto; Consegue ver o problema !ente ver a console "e erros ou o "epura"or... #eparou que a execu$o voa "e repente

Excees
%corre uma exce$o no ponto em vermelho& 'unction b(eb(e)* + var vetor , ne- Arra()*; var limite , aleatorio)./01*; var sai"a , 22; 'or )var i,1; i 3 limite; i44* + vetor5i6 , aleatorio)7/711*; 8 'or )var i,1; i 3 vetor.length; i44* + sai"a 4, vetor)i* 4 29r9n2; 8 alert)sai"a*; 8

Excees
Existem v:rias exce$;es que po"em ocorrer em um programa <avascript& Error )name/ message* = erro geral EvalError )message/ 'ile>ame/ line>umber* = erro "urante o coman"o eval #e'erenceError = #e'er?ncia ilegal @(ntaxError )message/ 'ile>ame/ line>umber* = erro "e sintaxe !(peError )message/ 'ile>ame/ line>umber/ stacA/ name* = tipo BncompatCvel D#BError = D#B inv:li"a

Tratamento de erros
!ratamento "e erro& tr(+ EE#un some co"e here 8catch)err*+ EEFan"le errors here 8

Tratamento de erros
Abra o arquivo voaGegal.html
tr( + var vetor , ne- Arra()*; var limite , aleatorio)./01*; var sai"a , 22; 'or )var i,1; i 3 limite; i44* + vetor5i6 , aleatorio)7/711*; 8 'or )var i,1; i 3 vetor.length; i44* + sai"a 4, vetor)i* 4 29r9n2; 8 alert)sai"a*; 8catch )erro* + alert)2Erro& 2 4 erro.name 4 29r9n2 4 erro.message 4 29r9nGinha& 2 4 erro.line>umber 4 29r9nArquivo& 2 4 erro.'ile>ame 4 29r9n@tacA& 2 4 erro.stacA*; 8

Tratamento de erros
var x,prompt)2Enter a number bet-een 1 an" 71&2/22*; tr(+ i')xH71*+ thro- 2Err72; 8else i')x31*+ thro- 2Err02; 8else i')is>a>)x**+ thro- 2Err.2; 8 8catch)er*+ i')er,,2Err72*+ alert)2ErrorI !he value is too high2*; 8i')er,,2Err02*+ alert)2ErrorI !he value is too lo-2*; 8i')er,,2Err.2*+ alert)2ErrorI !he value is nota number2*; 8 8

Tratamento de erros
Po"emos ter mais "e um catch no tr(
tr- . getCust/nfo+01ee02 34542 0lee6netscape7com0, 8catc9 +e if e :: 0/nvalid;ameException0, . <ad=name=9andler+e, 8catc9 +e if e :: 0/nvalid/dException0, . <ad=id=9andler+e, 8catc9 +e if e :: 0/nvalidEmailException0, . <ad=email=9andler+e, 8catc9 +e,. logError+e, 8

Tratamento de erros
% bloco 'inall( executa sempre "an"o erro ou no openLyFi e&') try 4 6riteLyFi e&t!eMata') <<N!is may t!ro6 a error 5catc!&e'4 !and eFrror&e') << If 6e got a error 6e !and e it 5fina y 4 c oseLyFi e&') << a 6ays c ose t!e resource 5

Exerccio
Jesenvolver uma 'un$o que converta a temperatura "e Celsius para Fahrenheit e viceKversa;

!em que vali"ar a entra"a FLrmulas&


MC , )MF K .0*E7/N MF , MC O 7/N 4 .0

Tra<al9o
Crie uma 'un$o Pavascript que vali"e a "ata "e nascimento "o usu:rio;

Jata v:li"a

Ano H, 7Q71 e 3, ano atual;

>ica
'unction "atas)* + var "ata , ne- Jate)*; alert)"ata*; var "ia , "ata.getJate)*; alert)"ia*; var mes , "ata.getRonth)*; alert)mes*; var ano , "ata.getFullSear)*; alert)ano*; var novaJata , neJate)Jate.parse)27TE1.E01712**; alert)novaJata*; 8

Você também pode gostar