Criar Exceptions

Olá. Eu sou um estudante de programação e gostaria de entender melhor como funciona a criação de Exceptions em Java. Eu gostaria de entender qual a diferença entre uma checked exception e uma unchecked exception. E como eu posso criar cada uma delas.

Olá, vou tentar te ajudar:

Como trabalhar com exceções:
Em Java uma exceção pode ser tratada/capturadas(try-catch) ou lançada (throw).
Quando ocorre uma exceção é criado um objeto chamado “exception object” e é passado para o sistema de execução (runtime system), contendo as informações sobre o erro, o sistema de execução tenta encontrar uma maneira para tratar o erro (catch), caso ele não encontre é emitido o erro:

  • try: Dentro desse bloco temos o código que esta sujeito a exceções.
  • catch: Dentro desse bloco é onde tratamos os erros.
  • finally: Tudo que esta dentro desse bloco será executado(exceto quando acontece um System.exit()), este trecho é executado após o try/catch.
  • throw: colocamos na assinatura do método para indicamos que este método pode gerar uma exceção.

Exceções são instanciadas a partir das subclasses:

  • Error: São erros internos do sistema e parecem em tempo de execução, exemplo estouro de memória.
  • Runtime: erros de programação como manipulação de um objeto com referencia nula.
  • Exception: erros que ocorrem em tempo de execução por exemplo abrir uma url incorreta.

Tipos de exceções:
Uma exceção pode ser do tipo “verificada”(checked) ou “não verificada”(unchecked ), as verificadas vem da Classe Exception e o Java nos obriga a tratá-las a partir de (try-catch) ou por (throw), as não verificadas vem da Classe RuntimeException e Error o Java não obriga que sejam tratadas no software.

Quando utilizamos o try-catch ou throw
Quando queremos tratar a exceção no nível que estamos, isto é não deixar a exceção ser tratada por quem chamou o método utilizamos o try-catch, já quando queremos deixar a exceção ser tratada por quem chamou o método.

Criando uma Exceção

public class CPF_Expetion extends Exception
{  
	private String msg;  
	public CPF_Expetion()
	{  
		super("CPF Invalido");  
		this.msg = "CPF Invalido";  
	}  
	public String getMessage(){  
		return msg;  
	}
}`

@victormenegusso

Cara, primeiramente muito obrigado pela resposta. Você já me definiu umas coisas que eu não sabia sobre o tratamento de exceções, o que é ótimo.

Tenha uma ótima noite e bom serviço!

@TheGL valeu.