Java - Ayuda con el tema de Excepcion del tipo "ArithmeticException"

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con el tema de Excepcion del tipo "ArithmeticException"

Publicado por Juan Carlos (2 intervenciones) el 05/08/2019 02:55:04
ejemplos

Hola buenas noches tengo duda con los ultimos dos ejercicios que serian el 5 y 6 ya esta toda la programacion solo me faltan esos dos puntos espero me puedan ayudan
A continuacion deje el programa:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
abstract class Animal{
    protected int legs;
    protected Animal(int legs){this.legs=legs;}
    public void walk();{System.out.println(legs);}
    public abstract void eat();
}
 
public interface Pet{
    String getname();
    void setname(String name);
    void play();
 
}
 
class Cat extends Animal implements Pet{
    private String name;
    public Cat(String name){
        super(4);
        this.name=name;
    }
    public String getname(){
        return name;
    }
    public void setname(String name){
        this.name=name;
    }
    public void play(){
        System.out.println("el juega a la play");
    }
    public void eat(){
        System.out.println("EL GATO COME PESCADO");
    }
}
class TestAnimal{
    public  static void main (String arg[]){
        Cat t = new Cat("GARFIELD");
        t.eat();
        t.walk();
        t.play();
        t.getname();
        t.setname("RODO");
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con el tema de Excepcion del tipo "ArithmeticException"

Publicado por Kabuto (1381 intervenciones) el 05/08/2019 11:50:20
Hola.

Los puntos 5 y 6 son ejercicios a parte de todo lo que has hecho sobre las clases de animales. Yo entiendo que son ejercicios separados.

Lo que te piden es que pongas en práctica el uso de try y catch para capturar excepciones. En el punto 5 te piden que provoques y captures una excepción aritmética (ArithmeticException).
La excepción aritmética más habitual es intentar hacer una división entre 0.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ExArit {
 
	public static void main(String[] args) {
 
		try {
			double division = 45/0; //Intentar dividir entre 0 provoca excepción
			System.out.println("Resultado: " + division);
		}
		catch(ArithmeticException ex) {
			System.out.println("Operación no permitida");
		}
 
	}
 
}

El punto 6 te pide hacer algo parecido, pero que sea capaz de capturar cualquier tipo de excepción.
Basta con que el catch capturemos a Exception, que engloba a cualquier tipo de excepción

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Excepciones {
 
	public static void main(String[] args) {
 
		try {
			//Intentar acceder al caracter de una cadena null
			String cadena = null;
			System.out.println(cadena.charAt(0));
		} catch(Exception ex) {
			System.out.println("Error Desconocido");
		}
 
	}
 
}

Aunque me parece más interesante crear un menú donde el usuario pueda escoger que excepción provocar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class Excepciones {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		System.out.println("Elija una excepcion:");
		System.out.println("\t(1)- Excepción Puntero Nulo");
		System.out.println("\t(2)- Excepción Artimética");
		System.out.println("\t(3)- Excepción Fuera de Límites");
		System.out.println("\t(4)- Excepción Formatear Número");
		System.out.println("\t(5)- Excepción Fichero No Encontrado");
		System.out.print("Opcion: ");
		try {
			switch(teclado.nextInt()) {
			case 1:
				System.out.println("\nIntentamos acceder a un caracter de una cadena null");
				String cadena = null;
				System.out.println(cadena.charAt(0));
				break;
			case 2:
				System.out.println("\nIntentaremos dividir entre 0");
				double division = 45/0;
				System.out.println("Division: " + division);
				break;
			case 3:
				System.out.println("\nIntentaremos acceder a una posicion mayor a la longitud de un array");
				int[] array = new int[4];
				System.out.println(array[5]);
				break;
			case 4:
				System.out.println("\nIntentaremos convertir en valor numérico una cadena de letras");
				System.out.println(Integer.parseInt("hihijhi"));
				break;
			case 5:
				System.out.println("\nIntentaremos acceder a un archivo que no existe");
				FileReader fr = new FileReader("/fakeDirectorio/fakeArchivo.txt");
				fr.read();
				break;
			default:
				System.out.println("No escogió una opción válida");
			}
 
		} catch(Exception ex) {
			System.out.println("\nExcepción provocada: " + ex.getClass());
		}
 
		teclado.close();
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar