[Música] fala Mestres beleza no vídeo de hoje nós vamos falar aqui sobre o tricat Né que é o que a gente usa aí para tratar exceções no JavaScript a gente vai entender como que a gente usa né e e como que a gente pode tá combinando né o tricat com outras coisas PR a gente para facilitar e a gente conseguir de fato fazer o tratamento das exceções e evitar que o nosso programa crashe né que ele pare de funcionar então e vamos lá eu tô aqui no eu criei o arquivo né o arquivo tricat que
é o tema dessa aula e nós temos aqui a função a nossa função que Nós criamos na aula passada de divisão que caso a gente tente dividir por zero né a gente vai a gente tá lançando essa exceção e o problema que a gente teve era que quando a gente chamou divisão né divisão passando aqui o dois e zero e a gente chamou essa função né Nós a gente tem aqui esse erro ó o na verdade a exceção é lançada né o Troll e o eror e ele parou o nosso programa né O problema que
a gente teve foi esse porque aqui ó se eu tenho um console pon log né do resultado e aqui eu vou criar né a variável resultado que seria o retorno da divisão né Eh quando a divisão é por zero que ele lança a exceção o programa simplesmente para de funcionar e esse consol log ele não é executado que olha só ele já logou aqui para mim né o stack Trace o erro em si né o erro como um todo e não fez o conso log então o tricat ele vai servir pra gente capturar esse erro
essa exceção e fazer alguma coisa né para tratar essa exceção Seja lá o o independente do que seja né que a gente vai da forma que a gente vai tratar esse erro e o programa ele vai continuar funcionando Tá então vamos fazer isso aqui agora o usando o tricat né e anotação aqui do tricat a gente digita né o try abre e fecha Chaves e logo após deixa eu dar um enter aqui ó try catch Opa e abre e fecha Chaves também só que no catch e não basicamente anotação é essa tá tricat E aí
nós temos a variação onde a gente captura o erro tá então por exemplo vamos fazer o seguinte eu vou pegar aqui ó mover esse código para dentro do Bloco do try certo ou seja como como que eu gosto de ler isso aqui e tente fazer isso que seria né o tente executar né esse bloco de código que seria a parte onde tudo o caminho onde tudo dar certo e se der um erro ele vai cair aqui no bloco Cat e vai fazer alguma outra coisa então eu vou fazer aqui ó um console P log erro
capturado tá então se eu executar nós temos aqui ó erro capturado que ele fez o conso log e então o que qual é o que que a gente acaba criando né quando a gente usa o tracket eu acabo criando dois caminhos ali pro meu programa um onde ele vai dar certo vai fazer as coisas outro onde ele vai dar errado então as operações que a gente executa que pode ser que dão erro que que vai ter uma exceção ou por exemplo né quando a gente tá trabalhando já com um banco de dados né que onde
o nosso programa ele tem que se comunicar com o banco de dados e às vezes se tiver algum problema ele vai ter uma exceção então a gente faz o triet e fala ó Tente se comunicar com o banco de dados Se você não conseguir faça isso aqui para eliminar essa possibilidade do programa parar de funcionar Então se por exemplo aqui ó depois do tricat eu colocar aqui um outro console log console. log eh finalizando final final do programa e a gente executar isso aqui eu vou teri ó o erro capturado e final do programa ou
seja teve um erro deu um erro foi lançada a exceção mas o meu programa ele continuou executando até o final tá então Então vamos melhorar isso aqui né no nosso Cat a outra variação é onde a gente consegue a gente captura que aconteceu um erro e eu pego também o erro tá então a anotação é essa ó eu passo parênteses aqui e eu dou algum nome pro erro eu posso chamar esse erro aí de e erro error né err sim eu eu dou o que eu tenho o que eu quero fazer aqui nesses parênteses É
de fato ter ali uma referência para para me referenciar esse erro que aconteceu eu posso eu comummente eu chamo de error assim err Então essa variável err vai ser o erro que aconteceu então eu posso fazer o seguinte ó dá o console log console. log no e p message tá e se eu fizer isso a gente pode executar o programa e nós temos aqui a mensagem não é e p message né É err eu digitei E se eu tento de novo olha lá ó não é permitido divisão por zero que foi a mensagem desse meu
erro eh e aí a gente a gente pode estar fazendo esse tratamento né ou seja se o erro que aconteceu é foi o erro x né aqui no caso aqui é a não permissão da divisão por zero eu vou fazer aí algum tratamento eu vou fazer uma comunicação eu vou mexer numa variável eu vou fazer o o que me interessar eh e dentro do erro né com nesse caso aqui o que tem uma coisa bem importante aqui que é bom a gente entender também deixar bem claro esse erro que eu estou capturando aqui no catch
ele pode ser diversas coisas né pode ser diversos erros então e normalmente o que que a gente O que que a gente pode fazer no momento que eu estou digitando o código eu não sei o que que pode ser esse erro pode ser um erro do JavaScript mas pode ser alguma mensagem de alguma outra biblioteca um outro tipo de dado pode ser diversas coisas então como eu não sei o que que é essa variável erro a gente pode verificar e como que eu posso verificar a gente pode fazer um if né eu vou verificar se
error ou esse R er RR né eu vou digitar erro só pra gente não né facilitar a pronúncia aqui eu vou verificar se error é uma Instância instance of error tá instance of error isso aqui novamente da mesma forma do New error que a gente vai falar mas lá em classes instance of error também é uma coisa específica das classes né então como a gente não falou sobre isso ainda eu não vou explicar isso aqui agora mas basicamente a anotação aqui né É tá bem é intuitiva né Eu Estou verificando se o erro que aconteceu
é um erro do tipo error do JavaScript E se for eu posso fazer né Por exemplo aqui o console log do error e agora quando eu digitar error ponto eu tenho aqui ó mensagem o nome do erro e também o stack né que seria o stack Trace Então a gente tem essas três variáveis aqui dentro desse objeto e o stack né esse stack Trace ele é opcional então por isso que tem essa interrogação porque vai ter alguns casos onde a gente não vai ter esse stack Trace aqui completinho tá então é basicamente isso a gente
pode verificar né o nesse bloco Cat ele é um bloco de código comum então a gente pode executar ele da forma que a gente quiser e enfim fazer as coisas que a gente tem que fazer para tratar o erro e no nosso caso aqui eu vou fazer o consol log do erro é erro capturado pode ser isso aqui não tem problema e referente ao que eu tinha dito anteriormente né onde a gente quer que o que quer fazer o consol log do resultado Independente se deu erro ou não a gente pode pode manipular aqui a
ordem das coisas então o que que eu posso estar fazendo eu posso criar aqui uma variável aqui antes do tricat né a variável resultado e ela vai começar com zero ou não né ou undef vamos começar com undef né faz mais sentido e aí eu vou tentar fazer a a minha operação que pode ser que dê erro que é a isão E aí se essa divisão der certo qual que a a divisão vai retornar o o resultado né os números Então como ela vai retornar eu vou atribuir na minha variável resultado a resposta de divisão
e a variável resultado eu criei aqui fora tá então eu vou tentar fazer essa operação dentro do tricat se der erro eu posso aqui por exemplo no caso de de deu erro na divisão eu posso fazer o consol log né de erro capturado e atribuir na variável resultado resultado vai ser igual a zero caso dê erro né caso o erro seja capturado e depois do meu tracket eu vou fazer aqui ó console P log resultado vamos usar aqui template liter né resultado a nossa variável resultado e depois eu vou fazer o print de final do
programa então se eu executo agora o código eu tenho aqui ó ele printou erro capturado que foi o nosso Cat né e o resultado ó ele printou igual a zero que foi o tratamento que nós fizemos e depois teve o final do programa Então esse exemplo que eu dei aqui por mais que foi um exemplo bem bem simplesinho é um caso aí onde a gente usa o try Cat para resolver o nosso problema Ou seja a funcionalidade minha de divisão ela ficou ela agora ela suporta erros né ela suporta exceções porque eu tô usando triat
né eu vou tentar fazer a operação caso tenha uma exceção eu vou tratar essa exceção que seria atribuir o resultado igual a zero então quando eu executar esse esse script né esse programa e e passar os parâmetros aqui e passar a divisão tentar fazer divisão por zero o meu programa ele não vai simplesmente crashar e não faz nada ele vai falar que o resultado é igual a zero e esse seria um exemplo aí de tratamento de erro bem sucedido tá E lembrando que a gente nós estamos fazendo isso porque o nós eu decidi né que
quando eu tentasse dividir por zero eu ia lançar uma exceção tá E aí como eu estava lançando a exceção que é o tema do módulo eu para tratar para capturar essa exceção a gente usa o bloco tricat tá e eu e novamente eu poderia simplesmente falar não se der algum erro de divisão na aqui na divisão Se eu tentar dividir por Zero ao invés de lançar uma exceção eu iria retornar nulo tá E aí eu meio que não precisaria do tricat porque eu ia verificar ia fazer um if né se o resultado da divisão for
nulo resultado que a variável seria igual a zero a gente poderia né fazer esse tratamento de algumas outras formas só só que o que tem que ficar claro é que error né o erro que pode acontecer Às vezes a gente não consegue englobar tudo né porque pode acontecer diversos erros diversos problemas no momento de execução do código então pra gente ter essa segurança de que mesmo que eu esteja tratando a maioria dos casos que eu conheço ainda assim pode ter casos que eu não conheço e para ter essa segurança a gente usa aí o tricat
para nos amparar Aí caso tenha algum erro tá então é basicamente isso tá para essa aula que eu preparei foi isso então nós na verdade nós temos aqui mais um detalhe Tá além do tricat já ia finalizando a aula mas temos aqui um um ponto a mais também que além do tricat nós temos um outro bloco aqui que é um bloco finally que esse bloco finally ele vai ser igual o ele vai ser na verdade a gente não falou ainda sobre finally se eu não me engano tá então o que que a gente usou o
finally a Eu acredito que a gente usou o final em algum lugar tá me falhando a memória mas né para evitar de que não fique informação voando aí esse finally esse bloco finally ele vai ser executado Independente se deu tudo certo ou se deu algum erro né Independente se ele o try ou se ele executou o catch o finally vai sempre ser executado tá então por exemplo vamos fazer aqui um caso onde tudo dê certo dividir 2 div por 2 eu vou executar aqui o programa e o resultado é um correto e no final aqui
eu vou fazer um conso log conso log finally vou executar de novo e nós temos aí eh ele printou o final O resultado é igual a um e finalizou o programa eu vou dividir tentar dividir dois por zero né que é onde a gente vai ter a exceção executando aqui ó erro capturado finally o resultado zero e o final do programa Então esse final ele é basicamente um bloco de código que sempre vai executar Independente se deu sucesso ou não a operação que a gente estava tentando executar tá então é bem importante é uma informação
bem útil né uma coisa que em alguns casos vai vai ter aí uma finalidade Tá certo então agora sim para essa aula é isso eu espero que eu tenha ajudado qualquer dúvida pode est deixando um comentário logo abaixo e é isso aí muito obrigado e até a próxima [Música]