Ayuda con excepciones en java

polog2

Bovino maduro
#1
Hola que tal

Veran realizando una practica en java me surgio un problema y no se de que manera solucionarla por ello pido su ayuda. Lo que ocurre es lo siguiente nesesito que un programa sume una serie de n numeros introducidos por el usuario y bueno me parecio algo facil, sin embargo el problema surge ya que el programa debe de ser capas de atrapar los errores en tiempo de ejecucion Es decir cuando el usuario ingrese algo que no sea numero es decir otro tipo de dato este mande un mensaje de error y vuelva a preguntar otra vez el numero que desea ingresar

Llevo esta parte del codigo

import java.util.Scanner;
public class Excepciones
{
double arr[];
int cant;
double res;
double sum=0;
Scanner obj=new Scanner(System.in);
public void Excepciones ()
{
System.out.println("Cuantos numeros desea sumar");
cant=obj.nextInt();
arr=new double [cant];
for (int i=0;i<cant;i++)
{
System.out.println("Dame numero: ");
arr=obj.nextDouble();
}
System.out.print("Los datos ingresados son: ");
for(int i=0;i<cant;i++)
{
res=arr+sum;
sum=res;
System.out.print(arr+" ,");
}
System.out.print("\nLa suma de sus numeros es"+sum);

}
}

Y esta funcionando lo unico que me falta es que en caso de que el usuario no ingrese un numero le vuelva a pedir el dato

Googleando un muy buen rato logre dejarlo asi aun que no se bien como funciona les agradeceria si me lo pudieran explicar y solo funciona para la primera parte donde pide el tamaño del arreglo en el llenado del arraglo ni hay ningun cambio

package Excepciones;
import java.util.Scanner;
public class Excepciones
{
boolean numero =false;
double arr[];
int cant;
double res;
double sum=0;
Scanner obj=new Scanner(System.in);
public void Excepciones ()
{
do
{
System.out.println("Cuantos numeros desea sumar");
try
{
cant=Integer.parseInt(obj.next());
numero=true;
}
catch (NumberFormatException e)
{
System.out.println("Ingrese solo numeros enteros ");
}
}
while(numero==false);

arr=new double [cant];
for (int i=0;i<cant;i++)
{
System.out.println("Dame numero: ");
arr=obj.nextDouble();
}
for(int i=0;i<cant;i++)
{
res=arr+sum;
sum=res;
System.out.println(arr+" ,");
}
System.out.println("La suma de sus numeros es"+sum);

}
}
 

Zephyros

Bovino de la familia
#2
Todo el código a ejecutar, debe estár dentro de un

try..
...catch...

El tipo de excepción dependerá de manera directa del tipo de error, o bien de un tipo que tú mismo hayas creado.

Busca información al respecto en la página "The Java Tutorial", ahí viene muy bien explicado.
 

gafedexter

Bovino adicto
#3
parece q namas bajaste el codigo y listo jajajaja

si es verdad que lo hiciste entonces entenderas perfectamente este que hice con los mismos datos y la misma metodologia q usaste




package numero;

import java.util.InputMismatchException;
import java.util.Scanner;

/**
*
* @author Carlos
*/

public class Numero {
boolean numero =false;
int cant;
double res, sum=0, arr[];

Scanner obj=new Scanner(System.in);
public void Excepciones () {
do {
System.out.println("Cuantos numeros desea sumar");
try {
cant=Integer.parseInt(obj.next());
numero=true;
}catch (NumberFormatException e) {
System.out.println("Ingrese solo numeros enteros ");
}
}while(numero==false);

arr=new double [cant];


numero=false;

for (int i=0;i<cant;i++){
do{
System.out.println("Dame numero: ");
try{
arr=Double.parseDouble(obj.next());
numero=true;
}catch (NumberFormatException e){
System.out.println("Ingrese solo numeros enteros ");
numero=false;
}
}while (numero==false);
}

for(int i=0;i<cant;i++){
res=arr+sum;
sum=res;
System.out.println(arr+" ,");
}
}


public double getsuma(){
return sum;
}



public static void main(String[] args) {
Numero num = new Numero();
num.Excepciones();
System.out.println("La suma de sus numeros es: "+num.getsuma());
}
}
 
Arriba