Sei sulla pagina 1di 7

Universidad de las Fuerzas Armadas ESPE

Extensin-Latacunga
Nombre: Darwin Taco Daniel Periodo Acadmico: Carrera: Electrnica e
Pulido Octubre 17-Febrero 18 Instrumentacin
Curso: Segundo A Asignatura: Programacin Fecha: 18-10-2017

Trabajo en clase
1. Ejecute y pruebe los siguientes programas que hacen uso del control y manejo
de Excepciones:
a. Obtenga la salida en la consola
b. Explique que hace cada programa

Excepcin 1:
Cdigo
Comentario
package Mi_paquete;

import java.util.Scanner;

public class Excepcion1 {

public static void main(String[] args) {

int a, b;
double c;
Scanner num=new Scanner(System.in);
System.out.print("Ingresa nmero: ");
a=num.nextInt();
System.out.print("Ingresa nmero: ");
b=num.nextInt();
System.out.println("Se proceder a dividir para 0");
/*Se utiliza en java para capturar las excepciones que
se ah podido
producir en el bloque*/
try {
c=a/0;
}
//En cuanto se produce la excepcion, la ejecucin del
bloque "thy" termina
catch (ArithmeticException e)
{
System.out.println("La divisin no se pudo efectuar debido
a error matemtico " +e.getMessage());
}
//la capsula catch recibe como argumento un objeto
"Throwable."
finally
{
c=(double) a/b;
System.out.println("La divisin entre el primer y segundo
nmero es: " +c);
}
/*permite ejecutar un fragmento de cdigo independiente de
si se produce
una excepcin */

}
}

/* El programa presentado a continuacin nos permite ingresar dos


nmeros enteros por el teclado
y con los bloques excepcions try-cach-finally permite que el
programa no nos de el error (vacio)
al momento de ingresar dos nmeros ya sea cualquiera de los dos " 0
"* y permita seguir el corrido
del programa*/

Corrido del programa:

Excepcin 2
El programa permite el ingreso de un numero mediante el teclado y nos indica si el
nmero es par o impar este programa hace el uso de excepciones al utilizar la clase
BufferedReader e InputStreamReader ademas del mtodo readline al ingresar los datos
mediante el teclado en este caso solo nos permite ingresar datos de tipo numrico en caso
de ingresar otro tipo de dato que no sea numrico nos indica un error.
Este tipo de excepciones solo se presenta al momento de ingresar datos.

import java.io.*;
public class Excepcion1 {
public static void main(String[] args) throws Exception
{
int a;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Ingrese un numero");
a=Integer.parseInt(br.readLine());

if(a%2==0)
System.out.println("Numero par ");
else
System.out.println("Numero impar ");
}

Ejecucin Del Programa

Excepcin 3:
Cdigo:
package Mi_paquete;
import java.util.Scanner;
class ExcepcionEdad extends Exception
/* Crea y lanzar una excepcin propia la cual tiene que definida de la
clase ExcepcionIntervalo
* derivada de la clase base Exception. */
{
public ExcepcionEdad(String mensaje)
{
super(mensaje);
}
/*Se pasa un string "mensaje ", que contiene un mensaje, en el nico
parmetro que tiene el
* constructor de la clase derivada y ste se lo pasa a la clase base
mediante "super ". */
}
class Empleado
{
private String nombre;
private String apellido;
private int edad;
public Empleado(String nombre, String apellido, int edad)
{
this.nombre=nombre;
this.apellido=apellido;
this.edad=edad;
}
public void imprime_datos()
{
System.out.println("Nombre: "+nombre);
System.out.println("Apellido: "+apellido);
System.out.println("Edad: "+edad);
}
}
public class Excepcion3 {
public static void main(String[] args) throws ExcepcionEdad {
String name, ap;
int ed;
Scanner ent=new Scanner(System.in);
System.out.print("Ingresa tu nombre: ");
name=ent.next();
System.out.print("Ingresa tu apellido: ");
ap=ent.next();
do{
System.out.print("Ingresa tu edad: ");
ed=ent.nextInt();
try{
if((ed<1)||(ed>100))

throw new ExcepcionEdad("Esa no es una edad vlida");


// Crea un objeto
// throws, tres tipos de excepciones. En el cuerpo de la funcin se crea, new, y se
lanza, throw, explcitamente un objeto de la clase ExcepcionIntervalo, definida por el usuario, e
implcitamente se crea y se lanza objetos de las
clases NumberFormatException y ArithmeticException definidas en el lenguaje Java.
}catch(ExcepcionEdad e)
{System.out.println(e.getMessage());}
}while((ed<1)||(ed>100));
Empleado em1 = new Empleado(name, ap, ed);
em1.imprime_datos();
}
}
Corrido del programa:

Excepcin 4
El programa nos permite ingresar diferente tipo de datos pero mediante una estructura
de repeticin cada vez que no ingresamos un dato que no sea numrico y sea menor que
2 este seguir ejecutndose y nos indica que estamos cometiendo un error.
Adems este programa hace uso de diferentes tipos de excepciones que son ingresadas
dentro de los bloques (try,catch,finally) que al momento de ejecutar el programa nos da
ciertas condiciones como lo es que sea un numero pero al momento que ingresamos un
dato no numrico este nos indica que este no es un valor numrico.

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

public class Excepcion2 {


public static void main(String[] args) {
int a=0;
Scanner num=new Scanner(System.in);
do{
try
{
System.out.println("Numero: ");
a=num.nextInt();
}
catch (InputMismatchException nfe)
{
System.out.println("no es Numero: "+nfe.getMessage());

}
finally
{
num.nextLine();
}
}while(a<2);
}
}

Ejecucin Del Programa

Excepcin 5:
Cdigo ;
package Mi_paquete;

import java.util.InputMismatchException;

/* La excepcin InputMismatchException es lanzada por la clase Scanner


cuando
* el elemento recibido no corresponde al tipo de dato esperado, por
ejemplo al utilizar
* Scanner.nextInt(), se espera recibir un nmero entero seguido de
un espacio o retorno de carro.*/
import java.util.Scanner;
public class AdivinaNumero {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int numeroAdivinar = (int) (Math.random() * 500);
/* La funcin Math.random() retorna un punto flotante, un nmero
* pseudo-aleatorio dentro del rango [0, 1). Esto es, desde el 0
* (Incluido) hasta el 1 pero sin incluirlo (excluido), el cual se
puede escalar hasta el rango deseado.*/
// debe ser entre 1 y 500, por lo que se incrementa en 1;
int numero = 0;
int intentos = 0;
do {
boolean leido;
do {
System.out.println("Introduzca un numero (1-500)");
try {
intentos++;
numero = teclado.nextInt();
System.out.println("El numero introducido es: "+ numero);
leido = true;
} catch (InputMismatchException ex) {
/*Perimite que solo ingrese numeros enteros */
System.out.println("No ha introducido un numero entero");
teclado.next(); // se lee el elemento no reconocido para eliminarlo
leido = false;
}
} while (leido == false);
if (numero > numeroAdivinar) {
System.out.println("El numero es menor. Sigue intentando");
}
if (numero < numeroAdivinar) {
System.out.println("El numero es mayor. Sigue intentandolo");
}
} while (numero != numeroAdivinar);
System.out.println("Enhorabuena. Has acertado, ya que el numero es: "
+ numeroAdivinar);
System.out.println("Lo has conseguido tras todos estos intentos: " +
intentos);
}
}

Corrida:

Bibliografa:
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/excepciones/propias.htm

Potrebbero piacerti anche