O que é ser excepcional? É ser uma excepção à regra algo inesperado ou que foge a um padrão. Vou atribuir o título de Excepcional ao autor da pérola que vou mostrar em seguida e que deveria ser intitulada “Como NÃO utilizar as excepções”.
public void Caller() { ... AuthenticateApplication_(appName, appPasswd, out BoolAuthenticated); if(!BoolAuthenticated) { throw new Exception("Application Authentication is invalid!"); } ... } public int AuthenticateApplication_(string StrAppName, string StrAppPass, out bool BoolAuthenticated) { BoolAuthenticated = false; ... try{ ... if(result!= StrAppPass) { throw new Exception("Invalid Application Authentication! : " + result ); } else { BoolAuthenticated = true; } ... } catch(Exception e){ } }
Ahahah, aposto que foi o Pedro Santos o autor de tal maravilha ;-)
ResponderEliminarPassa-lhe este texto que eu escrevi para o PEAR:
ResponderEliminarhttp://pear.php.net/pepr/pepr-proposal-show.php?id=132
É um condensado sobre como usar excepções (em PHP, mas aplica-se a outras linguagens).
Já agora, a questão de lançar uma excepção ou não num login falhado é válida. Não é tão óbvia como possa parecer. Se procurares na mailing list pear-dev a discussão sobre este documento, ou os comentários na wiki:
http://wiki.ciaweb.net/yawiki/index.php?area=PEAR_Dev&page=RfcExceptionUse
vais ver que é uma área cinzenta.
Ahaha! :P
ResponderEliminarDeves pensar que eu aprendi a programar em Aveiro!:-P
Eu não li muito sobre o assunto, mas tenho opinião enquanto programador do que penso que é correcto. Só deves enviar excepções se tiveres a fazer uma API ou uma framework que será utilizada depois por outras aplicações, ou outras camadas da tua aplicação, mas nunca fazes o catch dela, quem chamar o método é que tem de se preocupar com isso. E só mandares uma excepção no caso de não conseguires recuperar do erro (ex:int xpto = 0/x). Se estás a trabalhar na user interface ou algo que se assemelhe então deves ter sempre try, catch de modo a que o utilizador nunca "apanhe" com excepções, mas sim com mensagens de erro. Opinem!
ResponderEliminarEsse código é parvo.
ResponderEliminarNão faz sentido nenhum.
Quem programou isso nem a quarta classe deve ter.