Galera,
Ainda não entendi o porquê das instruções assert não poderem ser usadas para verificar parâmetros de métodos públicos.
Abraços 
Galera,
Ainda não entendi o porquê das instruções assert não poderem ser usadas para verificar parâmetros de métodos públicos.
Abraços 
Galera,Ainda não entendi o porquê das instruções assert não poderem ser usadas para verificar parâmetros de métodos públicos.
Abraços
![]()
E eu nao entendi o que vc esta querendo dizer, pode demonstrar com algum codigo?
Galera,Ainda não entendi o porquê das instruções assert não poderem ser usadas para verificar parâmetros de métodos públicos.
Abraços
![]()
E eu nao entendi o que vc esta querendo dizer, pode demonstrar com algum codigo?
Seguindo os princípios do “Projeto por Contrato”, instruções assert podem ser usadas para verificar pré-condições, ou seja, se os valores ou parâmetros passados para um método são adequados para o correto funcionamento do método. Porém, as instruções assert não devem ser usadas para verificar parâmetros de métodos públicos.
O livro do Sierra é claro.
O método publico normalmente será chamado por um código que vc desconhece e o PRÓPRIO MÉTODO deve tratar esse parâmetro de entrada e não um assert.
Com isso vc estaria utilizando o assert para validar algo que o próprio método deveria validar, fazendo com que seja gerado uma AssertException quando deveria ser lançada uma ExceçãoDeNegocioException.
O livro do Sierra é claro.O método publico normalmente será chamado por um código que vc desconhece e o PRÓPRIO MÉTODO deve tratar esse parâmetro de entrada e não um assert.
Com isso vc estaria utilizando o assert para validar algo que o próprio método deveria validar, fazendo com que seja gerado uma AssertException quando deveria ser lançada uma ExceçãoDeNegocioException.

A razão mais óbvia para não se usar assert para verificar parâmetros de métodos públicos, é o fato de as asserções poderem ser desabilitadas. Ou seja, a pessoa que utilizar suas classes, pode simplesmente desabilitar as asserções num sistema em produção, que é algo muito comum, e sua validação vai para o espaço!!!
Por isso, use asserções somente em métodos que somente você utiliza (privados), pois você pode controlar ou não as asserções enquanto desenvolve.
Espero ter ajudado. :lol:
A razão mais óbvia para não se usar assert para verificar parâmetros de métodos públicos, é o fato de as asserções poderem ser desabilitadas. Ou seja, a pessoa que utilizar suas classes, pode simplesmente desabilitar as asserções num sistema em produção, que é algo muito comum, e sua validação vai para o espaço!!!Por isso, use asserções somente em métodos que somente você utiliza (privados), pois você pode controlar ou não as asserções enquanto desenvolve.
Espero ter ajudado. :lol:

Também estudei muito de madrugada… Acaba com o poder de assimilação. 