Overblog Seguir este blog
Edit post Administration Create my blog
13 mayo 2009 3 13 /05 /mayo /2009 13:21
Excepciones
Una excepción es una condición anormal que surge en una secuencia de código durante la ejecución. La gestión de excepciones lleva a la gestión de errores en tiempo de ejecución. Cuando surge una condición excepcional se crea un objeto Exception.

 El trabajo con excepciones se realiza mediante las siguientes palabras clave: try Tiene el código de ejecución, si se produce un error lanza (throw) una excepción que será capturada. catch Captura la excepción lanzada por try que le precede. Puede capturar más de una excepción, es decir que se pueden añadir. finally La excepción es tratada en un gestor por omisión.
SINTAXIS DE EXCEPCIONES:
try
{
Bloque de código;
}
catch(
TipoExcepcion1 e){
gestión de la excepción;
}
catch(TipoExcepcion2 e){
gestión de la excepción;
 throw(e);
 } finally{}
Ejemplo

Supongamos que, una persona, desea realizar una división entre cero:

1 public class EjemploExcep{
 2 public static void main (String args[]){
 3  try{
 4    double resul;
 5        
 6         resul=27/0;
 7         System.out.println("Resultado es: "+resul);
 8         }//fin del try
 9   catch (ArithmeticException e){
10       System.out.println("Java, lanza una excepción, ya que no puede realizar una división entre cero");
11                    }
12        }
13 }

Untitled.jpg





























Sentencias de Control

Todo lenguaje de programación cuenta (o al menos debería contar), con una serie de iunstrucciones que, le permitan controlar el flujo de ejecución de las instrucciones. Afortunadamente Java posee dos grandes rubros de dichas sentencias:


à
Estructuras Selectivas, en las cuales encontramos el if, elseif y switch.

àEstructuras Repetitivas o Cilclos, entre las cuales están: while, do… while y for.


Estructuras Selectivas

En la vida, muchas veces, nos toca elegir entre un camino y otro a seguir. En muchas de las actividades que realizamos día con día, nos enfrentamos a decisiones que debemos tomar y que, de una u otra forma, alteran el cause normal de nuestra vida (o de nuestro programa).


Sentencia if

La sentencia if (o si condicional), le permite a un programa decidir, mediante la evaluación de una condición, ejecutar una u otra acción o acciones.

La sintaxis General es La siguiente:

if(condicion1)

    Accion1;

En donde:

Condición 1: Representa una expresión que puede ser del tipo booleana.

Acción 1: es la acción que, al evaluar la condición como verdadera, se ejecutará.

Si son varias acciones, van entre llaves.


Ejemplo

Diseñe un programa en Java, que calcule, los descuentos a un trabajador, sabiendo que, son aplicables, un 6.25% del salario en LPH, sólo si éste es superior a 300; Además que, si es un trabajador hombre, se le descuenta, aparte del LPH, el 3% sobre el sueldo en concepto de  SSO y 10% en concepto de Renta.

1 import javax.swing.*;
 2 class Descuentos{
 3 public static void main (String args []) {
 4    String datos;
 5   int sexo;
 6   double sueldo, afp=0, isss, totalre, nsueldo, renta;
 7    datos=JOptionPane.showInputDialog("Ingrese el sueldo del empleado (a)");
 8   sueldo=Double.parseDouble(datos);
 9   if(sueldo>300)//Preuntamos si el sueldo es mayor a 300
10       afp=sueldo*0.0625;// si es mayor, aplicamos descuento
11 JOptionPane.showMessageDialog(null, "Este empleado tiene un sueldo de: "+sueldo+" y  El descuento del AFP es: "+afp);
12 datos=JOptionPane.showInputDialog("Ingrese el Sexo: \nSi es Masculino (1)\nSi es Femenino (2)");
13 sexo=Integer.parseInt(datos);
14 if(sexo==1)//Si es de sexo masculino
15 {
16   isss=sueldo*0.03;//aplicamos las otras retenciones
17   renta=sueldo*0.10;
18   totalre=afp+isss+renta;
19   nsueldo=sueldo-totalre;
20   JOptionPane.showMessageDialog(null, "A este empleado, se le retiene: "+isss+" En concepto de ISSS\nAdemás Se le retiene: "+renta+" En Concepto de Renta\nLo que hace un total de: "+totalre+"\nY su nuevo sueldo es: "+nsueldo);
21 }//del if
22
23 }//del main
24 }// de la clase


 En las sentencias if, podemos agregar la sentencia else, la cual indica que, si al evaluar la condición, ésta es falsa, entonces, realizará las acciones, que estén después del else. La sintaxis es la siguiente:

if(condición1)

{

   Acciones;

}

else

{

    Condiciones;

}

 

Ejemplo 2

Al ingresar la nota de un alumno, se desea saber si éste aprobó o no, una materia en el colegio. Se sabe que para aprobar, se necesita una nota mayor o igual a 7.0. Diseñe una aplicación en Java que, al ingresar la nota, muestre con un mensaje, si el alumno, aprobó o no. Además se sabe que si la nota está entre 6.50 y 6.99, tiene la posibilidad de realizar un examen de suficiencia para aprobar.


1
import javax.swing.*;
 2 public class NotaAlum{
 3 public static void main (String args []){
 4     String leer;
 5    double Nota;
 6    leer=JOptionPane.showInputDialog("Ingrese la nota del alumno");
 7    Nota=Double.parseDouble(leer);
 8    if(Nota>=7.0)
 9        JOptionPane.showMessageDialog(null, "El alumno APROBÓ!!!!!!");
10  else
11      {
12                   JOptionPane.showMessageDialog(null, "El alumno reprobó");
13                            if(Nota>=6.5 && Nota<=6.99)
14                                  JOptionPane.showMessageDialog(null, "Pero tiene la posibilidad de realizar el examen de suficiencia");
15                          }//del else

16 }//del main
17 }//de la clase

 

Explicación:

En la línea 13, colocamos una condición  compuesta, es decir que,  si el alumno alcanza una nota mayor o igual a 6.5, pero menor a 7.0 (es decir 6.99), tiene la posibilidad de realizar el examen.

Note además que, una estructura, puede estar dentro de otra, lo que llamamos Anidamiento, para el caso, el if de la línea 13, está dentro del else, que inicia en la línea 10.


Sentencia elseif


Esta estructura, es una consecuencia cde las estructuras if anidadas, sus formato es el siguiente:

if(condicion1)

      Sentencia 1;

elseif(condicion2)

      Sentencia 2;

elseif(condicion3)

      Sentencia 3;

...

else

      Sentencia n;


Funciona de la siguiente manera:

Se evalúa la primera condición, si resulta verdadera se ejecuta la sentencia 1, y se continúa con la ejecución del programa; de lo contrario, de evalúa la condición 2, si resulta verdadera, se ejecuta la sentencia 2, de lo contrario se evalúa la condición 3 y así sucesivamente. Si al evaluar todas las condiciones, ninguna resulta verdadera, se ejecuta el bloque del else.

 

Sentencia switch


Esta sentencia, permite ejecutar, una u otra u otra acción, al evaluar una condición, cuyo resultado es el que indica que bloque (o bloques) de instrucciones se van a ejecutar.

Su sintaxis es la siguiente:

switch(expresión)

{

            case 1:

                        Sentecia 1;

                        break;

            case 2:

                        Sentecia 2;

                        break;

            . . .

            default:

                        Sentencias;

                        break;

}

 

En donde, expresión es una condición que, al evaluarla, nos indicará que camino debemos seguir. Además  ésta puede ser, una expresión entera  char, byte, int y short. Además que, la expresión constante que acompaña a la palabra reservada case debe ser del mismo tipo que expresión. La cláusula default es opcional y puede omitirse en los programas que desarrollemos.


Ejemplo 3


En una tienda, se realizan diferentes descuentos, a sus clientes al momento de cancelar en caja. Ya que, cuando se disponen a cancelar tienen la oportunidad de sacar una bolita, y dependiendo del color de la misma, se le aplica su respectivo descuento. Si la bolita es roja, se le aplica un 10% de descuento sobre la compra; si la bola es verde, se le aplica un 5% de descuento, y si la bolita es blanca, no se le aplica descuento alguno. Diseñe una aplicación que de soporte a ésta actividad en el súper mercado.

1 import javax. swing.*;
 2 public class SuperMercado
 3 {
 4  public static void main (String args [])
 5  {
 6     String  aux;
 7          int bolita;
 8          double compra, descuento=0, monto;
 9          //leemos el import de la compra
10         aux=JOptionPane.showInputDialog("Ingrese el importe de la compra: ");
11         compra=Double.parseDouble(aux);
12         //leemos el color de la bolita
13         aux=JOptionPane.showInputDialog("Ingrese el color de la Bolita:\nSi es Roja, ingrese 1\nSi fue Verde, Ingrese 2\nSi fue Blanca, ingrese 3");
14         bolita=Integer.parseInt(aux);
15         switch(bolita)
16         {
17              case 1:
18                                         {
19                                                                     descuento=compra*.10;
20                                                                     monto=compra-descuento;
21                                                                     
22                                                                    }
23                                                                    break;
24                                case 2:
25                                          {
26                                                                     descuento=compra*.05;
27                                                                     monto=compra-descuento;
28                                                                     
29                                                                    }
30                                                                    break;
31                                case 3:
32                                           monto=compra;
33                                                                     break;
34                                default:
35                                         monto=compra;
36                                                                   break;
37                    }//del switch
38                    JOptionPane.showMessageDialog(null, "El cliente había consumido: "+compra+" Pero sacó una bolita color: "+bolita+"\nPor lo que se aplicó un descuento de: "+descuento+"\nAhora el saldo a cancelar es: "+monto);
39        }//del main
40 }// de la clase

 

Compartir este post

Repost 0
Published by Prof. Luis E. Aponte I.
Comenta este artículo

Comentarios

Jose 05/21/2010 12:07


Hola exelente aporte se entiende la explicacion mas de lo comun gracias cuidate nos vemos


Juegos 07/15/2009 01:02

Algunas de estas excepciones las habia leido, pero no sabia que se complementaban con otras tantas.