SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Semana 2
Try/catch, mutabilidade, acesso por referência e cópia
Tratamento de exceptions
Para tratar as exceções do código, é usado o bloco try/catch. No bloco
try é onde se coloca o trecho de código que pode conter uma
exceção, e no bloco catch é indicado qual a exceção que será tratada,
podendo ser exibida uma mensagem ou onde o erro está localizado.
Existem dois tipos de exceções:
● Checked exceptions: que são as exceções que o compilador
reconhece no momento de escrita (Exception);
● Unchecked exceptions: que são apresentadas somente no
momento de execução (RuntimeException).
Exemplo:
https://github.com/pedrohubner/shoppingcart/blob/master/src/main/java/com/app/thread/Cart
Thread.java
Tratando checked exception
Tratando unchecked exception
Tratando unchecked com checked
Mutabilidade
Qualquer classe, atributo ou método em que seja possível mudar seu valor é
mutável, porém, isso pode ser um risco à segurança da aplicação, na
possibilidade de alterar algum valor que comprometa o desempenho do produto.
Para evitar isso, se usa a imutabilidade nos objetos java, aplicando a palavra final
aos atributos da classe, não criando métodos setter, tornando todos os elementos
da classe como private.
Aplicar a imutabilidade aos projetos traz muitos benefícios, entre eles:
● evita às modificações indesejadas nos elementos da aplicação;
● não concorrência de threads, por conta de não poder atribuir novos valores
aos recursos.
Copy
Utilizando o método clone(), e implementando a interface Cloneable, é
possível clonar um objeto, copiando todos os seus campos.
Existem dois tipos de cópias: deepcopy e shallowcopy.
Deepcopy: quando o endereço
de memória do objeto também
é clonado, não só o objeto.
Ou seja, qualquer alteração
feita na cópia, não refletirá no
objeto original.
Shallowcopy: o objeto é
clonado e a cópia aponta para
o mesmo endereço de
memória do original, o que faz
com que qualquer alteração
reflita nas duas variáveis.
Exemplo
Try/catch, mutabilidade, cópia e referência

Mais conteúdo relacionado

Mais procurados

Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções javaAntonio Oliveira
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Eder Samaniego
 
Algoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetiçãoAlgoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetiçãoEder Samaniego
 
Aula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetiçãoAula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetiçãoEder Samaniego
 
Semana 04 Estruturas Condicionais
Semana 04   Estruturas CondicionaisSemana 04   Estruturas Condicionais
Semana 04 Estruturas CondicionaisEder Samaniego
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHPLeonardo Soares
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1Eder Samaniego
 
Pacote web java script
Pacote web   java scriptPacote web   java script
Pacote web java scriptJoão Henrique
 
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
 

Mais procurados (20)

Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
Tratamento de exceções java
Tratamento de exceções   javaTratamento de exceções   java
Tratamento de exceções java
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Exceptions
ExceptionsExceptions
Exceptions
 
Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01
 
Algoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetiçãoAlgoritmos 01 - Semana 08 - Estruturas de repetição
Algoritmos 01 - Semana 08 - Estruturas de repetição
 
Mutex and monitores
Mutex and monitoresMutex and monitores
Mutex and monitores
 
Aula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetiçãoAula 03 - Estruturas de repetição
Aula 03 - Estruturas de repetição
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Semana 04 Estruturas Condicionais
Semana 04   Estruturas CondicionaisSemana 04   Estruturas Condicionais
Semana 04 Estruturas Condicionais
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 
Pacote web java script
Pacote web   java scriptPacote web   java script
Pacote web java script
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)
 

Semelhante a Try/catch, mutabilidade, cópia e referência

Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Natanael Fonseca
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesAlvaro Oliveira
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java IVerônica Veiga
 
Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Julio Cesar Nunes de Souza
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 

Semelhante a Try/catch, mutabilidade, cópia e referência (6)

Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java I
 
Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 

Mais de Pedro Hübner

Mais de Pedro Hübner (8)

Tomcat
TomcatTomcat
Tomcat
 
Testes
TestesTestes
Testes
 
Gradle
GradleGradle
Gradle
 
Mockserver
MockserverMockserver
Mockserver
 
Threads
ThreadsThreads
Threads
 
Boas práticas para desenvolvimento de software
Boas práticas para desenvolvimento de softwareBoas práticas para desenvolvimento de software
Boas práticas para desenvolvimento de software
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Semana um
Semana umSemana um
Semana um
 

Try/catch, mutabilidade, cópia e referência

  • 1. Semana 2 Try/catch, mutabilidade, acesso por referência e cópia
  • 2. Tratamento de exceptions Para tratar as exceções do código, é usado o bloco try/catch. No bloco try é onde se coloca o trecho de código que pode conter uma exceção, e no bloco catch é indicado qual a exceção que será tratada, podendo ser exibida uma mensagem ou onde o erro está localizado. Existem dois tipos de exceções: ● Checked exceptions: que são as exceções que o compilador reconhece no momento de escrita (Exception); ● Unchecked exceptions: que são apresentadas somente no momento de execução (RuntimeException). Exemplo: https://github.com/pedrohubner/shoppingcart/blob/master/src/main/java/com/app/thread/Cart Thread.java
  • 6. Mutabilidade Qualquer classe, atributo ou método em que seja possível mudar seu valor é mutável, porém, isso pode ser um risco à segurança da aplicação, na possibilidade de alterar algum valor que comprometa o desempenho do produto. Para evitar isso, se usa a imutabilidade nos objetos java, aplicando a palavra final aos atributos da classe, não criando métodos setter, tornando todos os elementos da classe como private. Aplicar a imutabilidade aos projetos traz muitos benefícios, entre eles: ● evita às modificações indesejadas nos elementos da aplicação; ● não concorrência de threads, por conta de não poder atribuir novos valores aos recursos.
  • 7. Copy Utilizando o método clone(), e implementando a interface Cloneable, é possível clonar um objeto, copiando todos os seus campos. Existem dois tipos de cópias: deepcopy e shallowcopy. Deepcopy: quando o endereço de memória do objeto também é clonado, não só o objeto. Ou seja, qualquer alteração feita na cópia, não refletirá no objeto original. Shallowcopy: o objeto é clonado e a cópia aponta para o mesmo endereço de memória do original, o que faz com que qualquer alteração reflita nas duas variáveis.