Adaptar um Try catch no código

Como eu poderia adaptar um try, catch nesse meu código, eu quero colocar para verificar se o sexo informado é diferente de “m” ou “f”, um na parte para verificar se a escolha eh diferente de 1 ou 0 e um na parte onde executa os cauculos, para nao dar erro de divisao por zero.

[code]import javax.swing.*;

public class PesquisaVIEW{
public static void main(String args[]){

	PesquisaDTO pesquisaDTO = new PesquisaDTO();
	PesquisaDAO pesquisaDAO = new PesquisaDAO();
	
	int escolha;
	
	for(;;){
		escolha = Integer.parseInt(JOptionPane.showInputDialog("Digite 1 para inserir dados do entrevistado ou 0 para fechar a pesquisa e"
												+" mostrar o resultado da pesquisa: "));
		switch(escolha){
			case 1: {
				pesquisaDAO.Inserir(pesquisaDTO);
				break;
			}
			case 0:{
				pesquisaDAO.Calcular(pesquisaDTO);
				pesquisaDAO.Mostraresultado(pesquisaDTO);
				System.exit(0);
			}
			default: JOptionPane.showMessageDialog(null,"Opção Invalida");
		}
		
	}	
	
}

}[/code]

[code]import javax.swing.*;
import java.text.DecimalFormat;
public class PesquisaDAO{

	public void Inserir(PesquisaDTO pesquisaDTO){
		pesquisaDTO.setSal(Double.parseDouble(JOptionPane.showInputDialog("Digite o sálario da pessoa :")));
		pesquisaDTO.setTotalsal(pesquisaDTO.getTotalsal()+pesquisaDTO.getSal());
		pesquisaDTO.setSexo(JOptionPane.showInputDialog("Digite o sexo da pessoa :"));
		if(!(pesquisaDTO.getSexo().equalsIgnoreCase("f") || pesquisaDTO.getSexo().equalsIgnoreCase("m"))){
			while(!(pesquisaDTO.getSexo().equalsIgnoreCase("f") || pesquisaDTO.getSexo().equalsIgnoreCase("m"))){
				pesquisaDTO.setSexo(JOptionPane.showInputDialog("Sexo invalido. "
								    +"\nInforme novamente o sexo do pesquisado: "));
			}
		}
		Versexo(pesquisaDTO);
		pesquisaDTO.setCont(pesquisaDTO.getCont()+1);
		
	}

	public void Versexo(PesquisaDTO pesquisaDTO){
		if((pesquisaDTO.getSexo().equalsIgnoreCase("m"))){
			pesquisaDTO.setConth(pesquisaDTO.getConth()+1);
		}
		if((pesquisaDTO.getSexo().equalsIgnoreCase("f"))){
			pesquisaDTO.setContm(pesquisaDTO.getContm()+1);
			if(pesquisaDTO.getSal()<=300){
				pesquisaDTO.setContmn(pesquisaDTO.getContmn()+1);
			}
		}
	}
	
	public void Calcular(PesquisaDTO pesquisaDTO){
		if(pesquisaDTO.getCont()>0){ //Essa verificação é para que nao ocorra erros de divisão por zero caso a contadora seja  zero
			pesquisaDTO.setMediasal(pesquisaDTO.getTotalsal()/pesquisaDTO.getCont());
			pesquisaDTO.setPorch((pesquisaDTO.getConth()*100f)/pesquisaDTO.getCont());
			pesquisaDTO.setPorcm((pesquisaDTO.getContm()*100f)/pesquisaDTO.getCont());
		}

		if(pesquisaDTO.getContmn()>0){ //Essa verificação é para que nao ocorra erros de divisão por zero caso a contadora seja  zero
			pesquisaDTO.setPorcmn((pesquisaDTO.getContmn()*100f)/pesquisaDTO.getContm());
		}

		
	}
	
	public void Mostraresultado(PesquisaDTO pesquisaDTO){
		DecimalFormat df = new DecimalFormat();
		df.applyPattern("0.00");
		JOptionPane.showMessageDialog(null,"Numero de pessoas entrevistadas: " + pesquisaDTO.getCont()
				+"\nNumero de homens entrevistados: " + pesquisaDTO.getConth()
				+"\nNumero de mulheres entrevistados: " + pesquisaDTO.getContm()
				+"\nA média salarial de todas as pessoas entrevistadas foi R$" + df.format(pesquisaDTO.getMediasal())
				+"\nA porcentagem de homens entrevistados foi: " + df.format(pesquisaDTO.getPorch())+"%" 
				+"\nA porcentagem de mulheres entrevistadas foi: " + df.format(pesquisaDTO.getPorcm())+"%" 
				+"\nA porcentagem de mulheres com salario < ou = R$300,00 entrevistadas foi: " + df.format(pesquisaDTO.getPorcmn())+"%" );
	}

}[/code]

[code]
public class PesquisaDTO{

private int conth=0,contm=0,contmn=0,cont=0;
private double sal,mediasal,totalsal=0;
private float porch=0,porcm=0,porcmn=0;
private String sexo;

public void setConth(int conth){
	this.conth = conth;
}

public void setContm(int contm){
	this.contm = contm;
}

public void setContmn(int contmn){
	this.contmn = contmn;
}

public void setCont(int cont){
	this.cont = cont;
}

public void setSal(double sal){
	this.sal = sal;
}


public void setMediasal(double mediasal){
	this.mediasal = mediasal;
}

public void setTotalsal(double totalsal){
	this.totalsal = totalsal;
}

public void setPorch(float porch){
	this.porch = porch;
}

public void setPorcm(float porcm){
	this.porcm = porcm;
}

public void setPorcmn(float porcmn){
	this.porcmn = porcmn;
}

public void setSexo(String sexo){
	this.sexo = sexo;
}


public int getConth(){
	return this.conth;
}

public int getContm(){
	return this.contm;
}

public int getContmn(){
	return this.contmn;
}

public int getCont(){
	return this.cont;
}

public double getSal(){
	return this.sal;
}

public double getMediasal(){
	return this.mediasal;
}

public double getTotalsal(){
	return this.totalsal;
}

public float getPorch(){
	return this.porch;
}

public float getPorcm(){
	return this.porcm;
}

public float getPorcmn(){
	return this.porcmn;
}

public String getSexo(){
	return this.sexo;
}

}[/code]

Não entendi ?!?!?!?!?

Adptar um try catcj pra quê ??? E como assim adptar ??? é só escrever try { }catch(Exception e){ }

Acho que não entendi tambem.

um “if” ai não resolve? :stuck_out_tongue:

Também não entendi… try catch para verificar? Use um if.

[quote=Giulliano]Não entendi ?!?!?!?!?

Adptar um try catcj pra quê ??? E como assim adptar ??? é só escrever try { }catch(Exception e){ }[/quote]

não adaptar, mas sim modificar meu código para utlizar o try e catch, e não whiles e ifs,.
Esse programa tah funcionando 100%. Mas eu gostaria que o codigo ficasse mais bonito. e não simples igual ele está.
Eu ainda nao tive try catch nas minhas aulas e não consigui ententer como utilizar, ja vi muitas coisas na net a respeito, mas não queria que as verificações de erros fosse de forma simples igual tah no meu código, queria utilizar mais funçoes do java. esse mesmo programa eu fiz em C, ano passado na matéria de Lógica de programação, mas ja que estou vendo java nao c, gostaria de usar funçoes do java.

edileyoliveira, o codigo mais bonito que tem é o mais simples que existe :smiley:

você pode fazer classes auxiliares de validação.

um try catch tem seu funcionamento simples

try{

// tenta executar o que tem que ser executado aqui

}catch(MinhaException ex){
// caso tenha um problema faça o tratamento apropriado aqui.
// por exemplo, mande uma mensagem dizendo, "dado com formato invalido."
}

espero que ajude :smiley:

hehehe

to até imaginando uma classe chamada HomosexualException…hauauhuhauha

po…cria um if do tipo (sexo != “m” &&sexo != “M” &&sexo != “f” &&sexo != “F” &&)

para evitar problermas com divisão pro zero kra ja existe uma classe…acho que NumberFormatException q é o nome…

[quote=maior_abandonado]hehehe

to até imaginando uma classe chamada HomosexualException…hauauhuhauha

po…cria um if do tipo (sexo != “m” &&sexo != “M” &&sexo != “f” &&sexo != “F” &&)

para evitar problermas com divisão pro zero kra ja existe uma classe…acho que NumberFormatException q é o nome…[/quote]

mas use (!“m”.equals(sexo))

por favor

é…vc tem razão…

pior q eu quase q ainda uso ~=…

ando usando mto outras coisas q sao meio diferenets ai eu eskeci…falha minha

equals…

[quote=edileyoliveira][quote=Giulliano]Não entendi ?!?!?!?!?

Adptar um try catcj pra quê ??? E como assim adptar ??? é só escrever try { }catch(Exception e){ }[/quote]

não adaptar, mas sim modificar meu código para utlizar o try e catch, e não whiles e ifs,.
Esse programa tah funcionando 100%. Mas eu gostaria que o codigo ficasse mais bonito. e não simples igual ele está.
Eu ainda nao tive try catch nas minhas aulas e não consigui ententer como utilizar, ja vi muitas coisas na net a respeito, mas não queria que as verificações de erros fosse de forma simples igual tah no meu código, queria utilizar mais funçoes do java. esse mesmo programa eu fiz em C, ano passado na matéria de Lógica de programação, mas ja que estou vendo java nao c, gostaria de usar funçoes do java.[/quote]

Não quer ser chato, mas como sei que você quer aprender: Java não tem funções, mas sim métodos!!! Ademais “try” não é função em linguagem alguma é uma palavra reservada! Mas tenta fazer um outro programinha mais simples com “try… catch…”, depois refaz o código deste!
Bons estudos!
San

Estude o try catch e faça uso correto dele, não tente colocar ele em qualquer lugar só para ter.