Vamos por parte. A primeira coisa a ser feita é criar a classe que extends Exception
import javax.swing.JOptionPane;
public class MinhaException extends Exception {
public MinhaException(String msg) {
super();
JOptionPane.showMessageDialog(null, msg, "Erro inesperado",
JOptionPane.ERROR_MESSAGE);
// Caso voce esteja utilizando logger
// log.error(msg);
}
}
Note que eu uso o Componente (Objeto) JOptionPane para exibir a mensagem de erro, neste caso eu uso o método showMessageDialog passando como parametros um componente(null), a mensagem e o titulo.
Agora basta usar o throw para criar uma nova instância do nosso objeto de tratamento de exceção:
public class TesteErro {
public static void main(String[] args) throws MinhaException {
int num1 = 4;
int num2 = 1;
System.out.println("Primeiro valor: " + num1);
System.out.println("Segundo valor: " + num2);
if (num2 == 0) {
throw new MinhaException(
"Não é possível realizar uma divisão por 0.");
}
System.out.println("Resultado: ");
double result = num1 / num2;
System.out.println(num1 + " / " + num2 + " = " + result);
}
}
Note que o meu método main não lança um objeto Exception e sim um MinhaException.
Para finalizar segue a saida do código acima (Sem Erro):
Primeiro valor: 4
Segundo valor: 1
Resultado:
4 / 1 = 4.0
Agora basta trocar o valor do atributo num2 para 0 que a exceção será lançada e tratada. Segue a saida:
Primeiro valor: 4
Segundo valor: 0
Exception in thread “main” MinhaException
at TesteErro.main(TesteErro.java:11)
Isso é tudo, mas este é apenas um exemplo simples, nada que se deva ser usado em um grande projeto, ele é util apenas para aprendizado, porem meu conselho é que você consulte alguns livros para ter um conhecimento mais aprofundado sobre Exceções.