iaew pessoal blz...
tava fazendo um codigo aqui e constatei uma coisa diferente... segue:public class A {
public static void main (String [] args) throws Exception{
String str = new A().retorno();
}
public String retorno() throws Exception{
// aqui da erro de compilação
if( true ){
return go();
}else{
// para rodar teria q colocar um return aqui tambem...
}
// ou colocar um return aqui...
}
public String go(){
return "ok";
}
}
public class A {
public static void main (String [] args) throws Exception {
String str = new A().retorno();
}
public String retorno() throws Exception{
if( true ){
return go();
}else{
throw new Exception();
}
// ele não precisa ter outro return
}
public String go(){
return "ok";
}
}
esse aqui compila ele considera o throw como um retorno (de fato ele retorna)...
nunca tinha me deparado com uma situação dessas...
public class FindController implements OperationControllerIfc {
private StrategyFindIfc strategyFind = null;
@Override
public Object executeOperation(Map<String,Object> dadosView) throws Exception {
String source = String.valueOf(dadosView.get("SOURCE"));
if(ConfigIfc.USUARIO.equals(source))
strategyFind = new UsuarioStrategy();
if(null != strategyFind){
return strategyFind.executeFind(dadosView);
}else{
throw new Exception("Não foi possivel determinar o tipo de Operação.");
}
}
}
sera q esse tipo de coisa cai no exame?
algum de vcs ja havia se deparado com o cod acima?