Tem algum problema em trocar if por catch (Exception e)

2 respostas
adrianohardcore

Boa tarde , estava aqui fazendo uma classe para ajudar no upload de arquivos para o banco de dados , o código ficou assim :

@Component
public class UploadFoto {
	public byte[] converter(UploadedFile file){
		try {
			byte[] foto = null;
			if (file != null){		
				InputStream stream = file.getFile();
				ByteArrayOutputStream baos = new ByteArrayOutputStream();			  
				IOUtils.copy(stream, baos);
				foto = baos.toByteArray();
			}		
			return foto;
			
		} catch (Exception e) {		
			return null;
		}			
	}
	public String extensao(UploadedFile file){
		if (file != null){
			String nome = file.getFileName();
			Integer tamanho = nome.length();
			return nome.substring(tamanho -3,tamanho).toUpperCase();
		}else
			return null;
	}
}

Mas depois fui tentar diminuir o código e cheguei a isto :

@Component
public class UploadFoto {
	public byte[] converter(UploadedFile file){
		try {			
			InputStream stream = file.getFile();
			ByteArrayOutputStream baos = new ByteArrayOutputStream();			  
			IOUtils.copy(stream, baos);
			byte[] foto = baos.toByteArray();			 
			return foto;
		} catch (Exception e) {			
			return null;
		}			
	}
	public String extensao(UploadedFile file){
		try {
			String nome = file.getFileName();
			Integer tamanho = nome.length();
			return nome.substring(tamanho -3,tamanho).toUpperCase();   
		} catch (Exception e) {			
			return "";
		}
	}
}

Agora a dúvida , eu sei que nos dois métodos se o parâmetro que chegar vier vazio vai dar erro , então teria problema de substituir o if pelo try ?Eu achei que o código ficou bem melhor só não sei se esta abordagem tem problemas.Obrigado !

2 Respostas

adriano_si

A boa prática de Tratamento de exceções diz que você deve usar o Try - Catch para tratar exceções e só…

Seu arquivo vir nulo é um erro ??? O Arquivo deveria existir ???

Então lance uma FileNotFoundException (que inclusive já penso que é isso que deveria estar nesse catch) e TRATE A EXCEÇÃO… TRATE A EXCEÇÃO, por favor, TRATE A EXCEÇÃO…

Você vai tentar se recuperar do erro que você encontrou, caso não dê jeito, então retorne uma mensagem ao usuário, de forma que o mesmo entenda o que deu de errado e o que deve fazer pra corrigir…

Enfim, só não esqueça: TRATE A EXCEÇÃO…

Abs []

adrianohardcore

Ok , voltarei a usar if pois o arquivo vazio no meu caso não é um erro e sim uma condição !Obrigado!

Criado 9 de março de 2012
Ultima resposta 9 de mar. de 2012
Respostas 2
Participantes 2