1
resposta

Quando usar checked e Unchecked

Achei muito boa a explicação do Alemão para exceptions checked e unchecked, mas ficou a duvida quando usar checked e quando usar unchecked? Me de exemplos de utilização real dessas exceptions.

1 resposta

Checked: o compilador já sabe de antemão que o código pode dar caquinha. Operações de leitura de arquivos por exemplo, o compilador já sabe de antemão que vai dar treta de o arquivo não existir, então para protejer a jvm ele já pede que vc trate de antemão dessa situação, olha um código meu de assinatura digital o tanto de caca que pode acontecer e o compilador se previne quanto a isso:

 public void signA1(String src, String dest)  {  

         try {

            // implementação de assinatura digital utilizando certificado A1 e itext
        } catch (UnrecoverableKeyException e) {

            e.printStackTrace();
        } catch (KeyStoreException e) {

            e.printStackTrace();
        } catch (NoSuchProviderException e) {

            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {

            e.printStackTrace();
        } catch (CertificateException e) {

            e.printStackTrace();
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        } catch (DocumentException e) {

            e.printStackTrace();
        }
        }

Nas unchecked o compilador não tem como prever o problema, logo ele não tem como se previnir :

public void cortarGrama(){

Cortador cortador = null;
cortador.cortar(); //null pointer exception
}

repara que quem tá fazendo a besteira é o programador, o compilador não tem como prever isso.

dá uma olhada nesses artigos: https://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/trabalhando-com-excecoes-conceitos/

https://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/excecoes-boas-praticas-mas-praticas/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software