E aí E aí galera da vida hoje bem vindo novamente posso falar pela Java Como sempre ele agradecimento especial para todas a galera que é mesmo no nosso canal e Natal nós vamos falar sobre o bloco finally na última então nós vimos a sobre o trickett né nas últimas duas aulas vimos como lançar exceções as exceções tanto do tipo Run time com muito tipo Exception temos com relação a sessão no pet agora nós vamos ver um caso bem específico que é quando você precisa que algum pedaço de código seja executado independente da condição que está
acontecendo dentro do seu Pet bom pra gente pode fazer o seguinte vamos criar tanto faz e vamos ficar à vontade buscar uma nova classe né a chamada de um time Exception teste 03 o cm bom número de casos quando você tá trabalhando com recursos externos por exemplo como está fazendo leitura de um arquivo ou você tá trabalhando com o banco de dados Estações conversa você tá fazendo requisição ao sistema operacional né para ou um outro tipo de sistema para que você possa acessar esse recurso se você tá abrindo um arquivo né você tá pedindo um
sistema operacional um processo para você abrir aqui arquivo você tá conectando no banco de dados você tá pedindo ao sistema gerenciador de banco de dados para te dar uma conexão e quando você tá trabalhando com Java né você tem várias pessoas fazendo requisições ao mesmo tempo ou você tem vários arquivos e nos aperta mesmo tempo e todas as vezes que você faz uma revisão para esse tipo de recurso né você tem que fechar Então você pede o recurso ao Senhor operacional ou se tem que mostrar os presente dá um recurso você abre recursos e depois
de você finalizar Você fecha porque se você não fechar que acontece se você tem e a por exemplo o Enem imagina Quantos milhões de pessoas não vão acessando o sistema do Enem quando você tem tem uma prova então existem momento assim que você precisa gerenciar esses recursos né ou seja depois que você utilizar eles corretamente Você precisa fechar os e muitos desses que você abre e fecha você precisar trabalhar com exceções por quê Porque é um caso onde como você ter problemas que estão além de seu controle então um arquivo não pode ser aberto ou
a conexão banco de dados pode ser a executar e assim por diante E no caso bem simples poderia só fazer uma simulação aqui então presente a gente pode ser uma assim é e abrindo arquivo em out tô escrevendo e pagos no arquivo E aí e aqui Salt e fechando o arquivo tem que bater aulas específicas para a trabalhar com arquivo né mas o geral mais ou menos isso que vai acontecer você vai ter que abrir o arquivo ou cê vai escrever os dados um arquivo e seguidas tem que fechar né o arquivo lá mas seria
mais o e o recurso do Oceano pressionar como fechando do recurso liberado pelo Hospital nutricional passo você também pode ter algum tipo de problema que pode acontecer então como nós já vimos outro Ele vai tentar executado em a seis sete oito né mas o que acontece no momento que você tiver escrevendo os lados então aqui você tem uma exceção a linha 8 nunca vai ser executada Então tudo bem aconteceu uma vez aí a o problema persiste né você tem que só ficar só mandando produção me leva as pessoas acessamos o que vai acontecer aqui todas
as vezes que você abrir né ele tá escrever um recurso vai continuar aberto em algum momento só memória ao seu pensamento vai vai estourar sua aplicação vai parar de funcionar Então a quem nasce em decurso da vida hoje para a gente vai fazer um negócio feio mas como vocês são alunos da vida hoje vocês vão aprender como fazer isso corretamente então em casos específicos né você tá e como recursos aonde os recursos eles precisam ser fechados a melhor parte para você fazer isso é durante o final Então esse é o bloco trai catch finally we
finally irão bloco de código sempre sempre vai ser executada Independência ou cê executou normalmente Independente se você tem uma exceção Independente se você está retornando alguma coisa então por exemplo eu vou colocar aqui e na esse fechado recurso liberado pela se o dentro do meu pai ali e vou remover aqui dentro na praia eu vou executar controle de afetar isso você vai ver quem vai executar manualmente né Pois é vou abrir aqui escrevendo das aquilo fechando recurso liberado pela cima a operacional para gente aí o que acontece se você tiver uma exceção por exemplo digamos
é pior que o aí depois de som é né Aí você são vários tem que conversar minha porque senão vai dar um erro de compilação forma que escala nunca foi cedo é lindo vídeo gostei contra o Barra eu vou executar agora novamente control shift F10 e você vai ver que apesar de nós termos da exceção né ou seja ele abriu o arquivo né ele teve o ano time ceptiom aqui sendo exibido no print 73 significa que nosso qat foi executado mas o nosso fechando recurso ainda foi executar vocês a gente vai ser um código aqui
ele seria executado Independente de você ter uma exceção ou não né Eu falei para vocês que Independente de ter ou não ter a dá um retorno por exemplo ele vai ser executado então a gente pode ir o seguinte você deixando todo método no é perto a control alt m e a senhora comprar o time eu queria extrair o metro é contra o time. em algum motivo de colocou Street mas é basicamente uma forma de você tirar a gente pode resumir aqui por exemplo bordas assim mesmo é contra o time para um motivo vou contar o
time tá funcionando como a gente faz do jeito antigo mesmo fala que estraga na falta sete void eu abri conexão e por exemplo não pode nem mais digamos aqui sem antes executar normalmente né a gente retorna aqui retorno a conexão aberta só como exemplo caso a conexão seja aberta com sucesso isso será retornado mas lembre-se que ainda existe a possibilidade do da sessão ser lançada Então esse código todo ele pode não ser executada por isso que a gente tem que vir aqui na minha 18 né Depois eu falo nem dá um outro retorno nesse caso
caso eu não problema retorna nulo por exemplo uma vou executar aqui o meu abre conexão a Tatiane para dar formato ao código quando chip 10 bom então você pode ver aqui ele abriu o arquivo ele escreveu os dados no arquivo e antes de executar o retorno para quem tá chamando ele fechou e liberou o recurso que nós estávamos utilizando Então faz nele ele sempre vai ter executado a ponta importante né é que existe ainda a possibilidade de você utilizar we finally diretamente então você não pode fazer o seguinte deixa colocar aqui pela voz de novo
é vou começar dizendo que ficar tão só o trem você não pode você é obrigado a colocar ou Kate ou falem Então existe né assentado javali permite a utilização do Toy Play Eu particularmente a minha carreira profissional eu nunca vi o trailer finally sendo utilizado né porque é um caso bem específico né Eu acho que você utilizaria ele quando você não se importa né você não tem como fazer nada com com exceção Mas você ainda gostaria de por exemplo tratar de alguma forma pelo menos a conexão que você abriu tá tocando o banco de dados
você apresente não se importa com exceção aí você ainda tem que fechar a conexão então você perde a conexão fora né mas é sessão explode é como você não tá atendendo não tratamento nesse som ou um método que chamou nesse caso mesmo teria que fazer aquela conexão fez aquela conexão então tá coleção desculpa porque você irá fechar aqui né mas teria que fazer o tratamento com aquela sensação e para simples eu chamar abre conexão dois tipos F10 ele executa normalmente né agora aqui você termino dados no arquivo e fechando recurso liberado pelo pelo sistema operacional
você tiver uma exceção aqui em ou eu o Amparo É certo que vai acontecer aqui o método mente está chamando seria obrigado a trabalhar em cima dessa seção você pode ver que ele fechou Porém não tem nenhum tratamento como nós vamos exames tratamento aqui no nosso Paulista ativar de mim ou programa ele parou de funcionar Ah tá bom então basicamente é isso eu tinha para falar na aula de hoje ou bloco finalização utilizado quando você precisa trabalhar com recursos sendo liberado por Outras aplicações que precisam ser fechadas após o seu uso e durante a criação
do outro Ai que você nunca pode criar um pai sozinho outro Arquette ou trailer O pai fazendo não é tão utilizado no dia a dia e geralmente você trata esse são localmente né quando você tá você tem uma sessão acontecendo no seu Bloco Toy mas é importante saber que isso aqui também é possível em geral isso era tudo que eu tinha para falar para vocês vamos continuar mais e só isso na próxima aula ele vocês lá até mais