domingo, 24 de octubre de 2010

Gestion de excepciones con try catch y throws

EXCEPCIONES

Utilizamos las excepciones en Java para detectar y corregir errores que se pueden presentar en un determinado programa que estemos ejecutando.
La diferencia entre una Excepcion y un Error es que una excepción si es atrapada (catch) por el programa y el programador permite recuperar el programa y continuar con su ejecución, mientras que un error aunque sea atrapado (catch) por el programa y el programador suspenderá el programa y terminara su ejecución.


Cuando se presenta un error se lanza un objeto Throwable,que puede capturar el error y tomar las medidas que estime oportunas para que el programa siga su ejecucion sin volver a mostrar dicho error.

Hay dos tipos de excepciones:

1) RuntimeException: errores del programador,como una division por cero o el acceso fuera de los limites de un array.

2)IOExeption: errores que no puede evitar el programador,generalmente relacionados con la entrada/salida del programa.

Para manejar las excepciones utilizamos las sentencias try , catch , finally:

try: encierra el codigo donde se produce las excepciones y en español significa intentar.Por cada bloque try hay un catch por tal motivo se pueden capturar varios tipos de excepciones.

catch: Contiene el codigo que se va a ejecutar despues de presentarse la excepcion, maneja todos los errores de un determinado programa.

finally :es empleada dentro de un Bloque try/catch para realizar tareas que deben ser ejecutadas independientemente del comportamiento de errores.
Cuando se atrapa un error ("Exception") un programa queda inconcluso, es esta terminación abrupta la que puede causar que algún recurso/mecanismo permanezca asignado o mal utilizado; a través de una sección finally se garantiza que sea ejecutado un juego de instrucciones independientemente del tipo de error que pueda ocurrir; un uso muy común para una sección finally consiste en liberar conexiones hacia Bases de Datos que pudieran haber sido asignadas en la sección try.


Propagacion de excepciones (throws)
Si lanzamos una excepcion debemos tener en cuenta que tenemos que añadir una clausula throws que puede contener una lista del tipo de excepciones que se pueden producir al invocar un metodo.
ejemplo:
public String leerFichero (String nombre del fichero) throws IOException

Adjuntamos un video donde nos explican paso a paso el manejo de excepciones en un programa muy comun la division entre cero.

http://www.slideshare.net/jent46/excepciones-en-java-presentation
http://elvex.ugr.es/decsai/java/pdf/B2-excepciones.pdf
http://javabasico.osmosislatina.com/curso/progavanza2/trycatch.htm

Presentado por:
sandra milena leon jenny navas leidy matallana
michael fino pinto jose garcia bejarano

domingo, 17 de octubre de 2010

Cadenas De Caracteres

Cadenas de caracteres en Java

Primero que todo debemos tener claro el concepto de una cadena de caracteres para saber a ciencia cierta de que estamos hablando; Una cadena de caracteres es una sucesión de caracteres que pertenecen a cierto alfabeto es decir que pueden ser letras, números, símbolos o signos entre otros.

En cuanto a la programación, en una cadena de caracteres se pueden colocar restricciones al alfabeto es decir que solo tengan diversos tipos de los anteriormente nombrados; si hablamos de letras serian las letras de la ‘a’ a la ‘z’ y de la ‘A’ a la ‘Z’, en cuanto a números tenemos del ‘0’ al ‘9’, por últimos si son signos o símbolos tenemos el espacio en blanco diversos símbolos como lo fueran ‘#’ ‘@’ ‘/’ ‘*’ entre otros. Al igual en el ámbito de la programación se pueden utilizar como un Tipo de Dato predefinido, para palabras, frases o cualquier otra sucesión de caracteres
– Vectores de datos y Matrices de datos de una sola fila o mejor conocido como:
(Array en Ingles)

Al considerar las cadenas como un tipo de dato podemos realizar diferentes operaciones con ellas dentro de las cuales encontramos:

Asignación: Consiste en asignarle una cadena a otra

Concatenación: Consiste en unir dos o mas cadenas (o una cadena con un carácter) para formar una cadena de mayor tamaño.

Búsqueda: Consiste en localizar dentro de una cadena una subcadena más pequeña o un carácter.

Extracción: Se trata de sacar fuera de una cadena una parte de la misma según su posición dentro de ella.

Comparación: Se utiliza para comparar dos cadenas.

1 2 3 4 5
T E X T O
String ___Longitud___

Length --> Longitud --> Int

Int Longitud = A.length.( );

System.Out.Println(Longitud);

A.chartAt (4);
Posición

Int pos=A.indexOf (‘X’);
Caracter de la Posición

System.Out.Println(A.char+(2));

Int Codigo=A.hashCode();
Posicion Final

String Sub=A.substring(0,2);
Posicion Inicial

A.substring (2);

String m=A.tolowerCase();
Minusculas

String m=A.toupperCase();
Mayusculas

InputStreanReader variable1=new InputStremaReader(System.in);
Buffered Reader variable2=new BufferedReader (variable1);
String Cadena= variable2.readline();

(Int codigo= A.(Substring))

Para convertir el valor de una cadena en un tipo de dato simple debemos utilizar los siguientes métodos:

Tipo De String

boolean new Boolean(String).booleanValue()
int Integer.ParseInt(String, int base)
long Long.ParseLong(String, int base)
float new Float(String).floatValue()
double new Double(String).doubleValue()

Inserción:
StringBuffer insert( int i, Object o ); Desplaza los caracteres de la cadena e inserta la
cadena correspondiente al segundo parámetro (de cualquier tipo).

Sustitucion:
void setCharAt( int i, char to ); Cambia el carácter de la posición i por to. Si la posición supera la longitud de la cadena, se extiende rellenándose con caracteres nulos.

Borrado:
StringBuffer delete( int ini, int fin ); Borra la subcadena entre el carácter ini y el fin.


Ejemplos de uso de cadenas
(http://zarza.usal.es/~fgarcia/doc/tuto2/III_2.htm)
a.) Ejemplo de Cadena Fija (de la clase String)
En el siguiente ejemplo se muestra la utilización de los principales métodos de la clase String:

public static void main( String s[] ){
String cad = new String("Cadena Fija");
System.out.println("Ejemplo de String: '"+cad+"'");
//Métodos comunes a StringBuffer
System.out.println("Su longitud es: "+cad.length());
System.out.println("Su tercer caracter es: "+cad.charAt(3));
System.out.print("Su subcadena del 3 al 6 es:");
System.out.println( cad.substring(2,6) );
char[] vectorcad = cad.toCharArray();
System.out.println("Creado un vector, de elemento 3: ");
System.out.print( vectorcad[2] );
// Búsqueda en cadenas
String subcad=new String("ena");
System.out.print("La subcadena '"+subcad+"'");
System.out.print(" aparece en la posicion: ");
System.out.println( cad.indexOf(subcad) );
// Comparaciones
String cadcomp=new String("CADENA Fija");
System.out.print("La cadena '"+cadcomp+"'");
if ( cad.compareTo(cadcomp) == 0 )
System.out.println(" ES igual 'Sensitive'");
else
System.out.println(" NO es igual 'Sensitive'");
System.out.print("La cadena '"+cadcomp+"'");
if ( cad.equalsIgnoreCase(cadcomp) )
System.out.println(" ES igual 'Insensitive'");
else
System.out.println(" NO = 'Insensitive'");
// Derivación
System.out.print("Cadena derivada en minusculas: ");
System.out.println( cad.toLowerCase() );
}

Lo que muestra por pantalla:

ejemplo de String: 'Cadena Fija'
Su longitud es: 11
Su tercer caracter es: e
Su subcadena del 3 al 6 es: dena
Creado un vector, de elemento 3: d
La subcadena 'ena' aparece en la posicion: 3
La cadena 'CADENA Fija' NO es igual 'Sensitive'
La cadena 'CADENA Fija' ES igual 'Insensitive'
Cadena derivada en minusculas: cadena fija