Está en la página 1de 16

Java es el lenguaje ms importante de Internet.

Ms an, es el lenguaje
universal de los programadores web en todo el mundo. Para ser un
desarrollador web profesional es necesario dominar Java.

Los orgenes de Java.


La mejora en los lenguajes computacionales est definido por dos factores:
mejoras en la programacin y cambios en el entorno de la computacin. Java
no es la excepcin.
Aprovechando lo que C y C++ ha dejado, Java ofrece mejoras y funciones que
reflejan el estado actual de la programacin.
James Gosling, Patrick Naughton, Chris Warth, Ed Frank y Mike Sheridan
concibieron Java en Sun Microsystems en 1991. A este lenguaje se le llam
inicialmente Oak pero se le renombr Java en 1995. Sorpresivamente,
Internet no fue el objetivo original de Java! La motivacin principal, en cambio,
fue la necesidad de un lenguaje que fuera independiente de la plataforma y
que pudiera emplearse para crear un software que estuviera incrustado en
varios dispositivos electrnicos para uso del consumidor, como tostadoras,
hornos de microondas y controles remotos. Se usan muchos tipos diferentes de
CPU como controladores. El problema es que la mayor parte de los lenguajes
de cmputo estn diseados para compilarse con un destino especfico.
Pensemos, por ejemplo, en C++.
Aunque es posible compilar una pgina de C++ para cualquier tipo de CPU,
para ello se requiere un compilador completo de C++ orientado a ese CPU. Sin
embargo, el problema es que los compiladores son caros y su creacin requiere
mucho tiempo. En el intento de encontrar una mejor solucin, Gosling y sus
dems compaeros trabajaron en un lenguaje portable, de plataforma cruzada,
que pudiera producir un cdigo que se ejecutara en diversos CPU bajo entornos
diferentes. Este esfuerzo culmin la creacin de Java. (Schildt, 2007)

La evolucin de Java.
Slo unos cuantos lenguajes han cambiado de manera importante la esencia
de la programacin. En este selecto grupo, uno de ellos se destaca debido a
que su impacto fue rpido y de gran alcance. Este lenguaje es, por supuesto,
Java. No resulta exagerado afirmar que el lanzamiento original de Java 1.0 en
1995 por parte de Sun Microsystems caus una revolucin en la programacin
que transform de manera radical la Web y lo convirti en un entorno
enormemente interactivo. En el proceso, Java estableci un nuevo estndar en
el diseo de lenguajes para computadoras.
La primera actualizacin importante de Java fue la versin 1.1. Las funciones
agregadas en Java 1.1 fueron ms sustanciales de lo que se pensara a partir
del pequeo aumento en el nmero de versin. Por ejemplo, Java 1.1 agreg
muchos elementos nuevos de biblioteca, redefini la manera en que se
manejaban los eventos y reconfigur muchas caractersticas de la biblioteca
original versin 1.0.

La siguiente versin importante de Java fue Java 2, donde el 2 indicaba


segunda generacin. La creacin de Java 2 constituy en parteaguas y marc
el inicio de la era moderna de Java. La primera versin de Java 2 llev el
nmero de versin 1.2. El nmero aluda originalmente a la versin interna de
las bibliotecas de Java, pero luego se generaliz para aludir toda la versin.
Con Java 2, Sun re empaquet el producto Java como J2SE (Java 2 Plataform
Standar Edition) y el nmero de versin empez a aplicarse a ese producto.
La siguiente actualizacin de Java fue J2SE 1.3. Esta versin de Java fue la
primera actualizacin importante de la versin original de Java 2, pues, en su
mayor parte, contena adiciones a las funciones existentes y le apret las
tuercas al entorno de desarrollo. La versin J2SE 1.4 mejor Java an ms.
Esta versin contena nuevas e importantes funciones, incluidas las
excepciones encadenadas, la E/S de canal y la palabra clave assert.
La ltima versin de Java es la J2SE 5. Aunque cada una de las actualizaciones
anteriores de Java ha sido importante, ninguna se compara en escala, tamao
y alcance con la J2SE 5. sta ha cambiado de manera fundamental el mundo
de Java! (Schildt, 2007).

Errores de programacin.
Los errores de programacin son inevitables, incluso para programadores
experimentados. El proceso de corregir un error (bug en ingls) se denomina
depuracin (debugging) del programa. Cuando se detecta un error en Java, se
visualiza un mensaje de errores que devuelve la posible causa del error.
Desgraciadamente los errores a veces no se detectan y los mensajes de error
no son siempre fciles de interpretar.
El ciclo editar-compilar-ejecutar junto con la depuracin paso a paso de los
errores observados y fijados en los programas se pueden observar en el
siguiente diagrama:

Editar y crear un nuevo archivo .java

Compilar

Editar y corregir errores de compilacin

Ejecutar programa

Editar para corregir o ampliar

Los mensajes de error que produce el compilador no siempre ayudan a


encontrar los errores. Una mezcla de las advertencias del compilador, manual
de instrucciones y sobre todo la experiencia, sern quienes le proporcionarn el
conocimiento suficiente para llegar a depurar programas con xito, sobre todo
cuando estos programas sean grandes y complejos. Existen tres tipos de
errores: errores de compilacin (sintaxis), errores de ejecucin y errores
lgicos.

Errores de compilacin (sintaxis).


Los errores de sintaxis ocurren cuando el cdigo viola una o ms reglas
gramaticales de Java. Los errores de sintaxis se detectan y visualizan por el
compilador cuando se intenta traducir el programa, por esta razn se
denominan tambin errores de compilacin. Los errores de compilacin
provienen de errores en la construccin el cdigo tales como escribir mal una
palabra reservada, omitir algn signo de puntuacin o bien utilizar, por
ejemplo, una llave de apertura sin su correspondiente llave de cierre. Estos
errores suelen ser fciles de detectar, ya que el compilador suele indicar dnde
se producen las posibles causas.
Ejemplo. La compilacin del siguiente programa produce errores de sintaxis.
//este programa contiene errores de sintaxis
public class Demo
{
public static void main (String[] args)
{
z=50;

System.out.println(z+10);
}
}
La compilacin de este programa produce error detecta por el compilador del
entorno JDK.
El error de sintaxis es la no declaracin previa de la variable z, que se utiliza en
dos sentencias.
Error de sintaxis: Es una violacin de las reglas de gramtica de Java,
detectada durante la traduccin del programa.

Errores de ejecucin.
Los errores de ejecucin son errores que producen una terminacin anormal y
que se detectan y visualizan durante la ejecucin del programa. Un error de
ejecucin se produce cuando el usuario instruye a la computadora para que
ejecute una operacin no valida, tal como dividir un nmero por cero o
manipular datos indefinidos o no validos en la entrada.
Un error de entrada ocurre cuan el usuario introduce un valor de entrada
imprevisto que el programa no puede manejar. Por ejemplo, si el programa
espera leer un nmero, pero el usuario introduce una cadena de caracteres. En
Java, los errores de entrada hay que declararlos en una clausula throws o bien
capturarlos y tratarlos directamente dentro del mtodo en el que se pueden
producir.
Ejemplo.
public class ErrorDeEjecucion
{
private static int z;
static void prueba()
{
z=10/z;
}
public static void main (String[] args)
{
prueba();
}
}
Al invocar el metodo prueba() se produce un error en tiempo de ejecucin
java.lang.ArithmeticException: / by zero
que indica un intento de dividir por cero (el valor de z), operacin no vlida.
Error de ejecucin: Se intent ejecutar una operacin no vlida que fue
detectada durante la ejecucin del programa.

Errores lgicos.
Los errores lgicos ocurren cuando un programa realiza un algoritmo incorrecto
y no ejecuta la operacin que estaba prevista. Existen muchos tipos de razones
para que se produzcan errores lgicos.
Normalmente los errores lgicos sin difciles de detectar, ya que no producen
errores en tiempo de ejecucin y no visualizan mensajes de error. El nico
sntoma de que se ha producido un error lgico puede ser la salida incorrecta
del programa. Se pueden detectar errores lgicos comprobando el programa en
su totalidad y comparando su salida con los resultados calculados. La
prevencin de errores lgicos se puede realizar verificando el algoritmo y el
programa correspondiente antes de comenzar el proceso de ejecucin.
Error lgico: Es un error producido por un algoritmo incorrecto.
Por ejemplo la instruccin
System.out.println(Sie de Cazorla);
no muestra la frase que deseaba, pues no se ha escrito bien
System.out.println(Sierra de Cazorla);
pero el compilador no puede encontrar el error, ya que la primera sentencia es
sintcticamente correcta. (Zahonero Martnez & Joyanes Aguilar, 2002)

Resolucin de problemas.
El procedimiento para resolver problemas con una computadora consiste la
escritura de un programa y su posterior ejecucin; precisamente, la
programacin es un proceso de resolucin de problemas. Existe una variedad
de tcnicas para resolverlos, y aunque el procedimiento de disear y crear un
programa es altamente valido y necesario, se puede decir que existen varias
etapas para la creacin de un programa, entre las ms destacadas:
Anlisis: La solucin del problema recae en revisar las especificaciones dadas
por el cliente en consideracin al programa.
Diseo de algoritmo: Una vez se ha analizado el problema, lo siguiente es
disear el algoritmo adecuado que cubra las necesidades del programa y
resuelva el problema.
Codificacin: Dicho algoritmo se escribe en cualquier cdigo fuente, en este
caso Java, y se obtiene el programa que posteriormente se ejecutar.
Compilacin y ejecucin: Gracias al compilador, el programa se interpreta de
manera que pueda ser ejecutado.
Verificacin y depuracin: El problema sufre una comprobacin rigurosa para
eliminar cualquier error que pudiera existir, llamados bugs.
Mantenimiento: El programa se actualiza y sufre algunas modificaciones que el
cliente requiera, de manera que se satisfagan las necesidades de los usuarios,

sin importar el nmero de veces que se modifique. Tambin se van mejorando


los algoritmos al realizar los cambios que se piden.
Documentacin: Escritura de las diferentes fases del ciclo de vida del software,
esencialmente el anlisis, diseo y codificacin; junto con manuales de usuario
y de referencia, as como normas para el mantenimiento.
Las dos primeras fases conducen a un diseo detallado, escrito en forma de
algoritmo; despus, durante la codificacin, el algoritmo se implementa en un
cdigo escrito en lenguaje de programacin, reflejando las ideas desarrolladas
en las etapas de anlisis y diseo; en las siguientes fases el programa se
traduce y ejecuta y, en la parte de verificacin y depuracin, el programador
busca errores cometidos en las etapas anteriores y los corrige. Est
demostrado que mientras ms tiempo se invierta en la fase anlisis y diseo,
se requiere menos tiempo en la depuracin del programa; por ltimo, se debe
documentar el programa. En ocasiones, se denomina a todas estas fases como
ciclo de anlisis-codificacin-ejecucin-mantenimiento de un programa.

Anlisis del problema.


Esta fase requiere definir el problema y especificar claramente las tareas que el
programa debe realizar y el resultado o solucin que se espera; esta etapa se
divide en varias fases:
o
o
o
o

Comprender el problema lo ms fielmente posible.


Entender y describir los requerimientos o requisitos del problema. Es
necesario aclarar si el programa requiere interaccin con el usuario para
leer datos de entrada y especificar los formatos de salida o resultados.
Especificar los datos supone describirlos y representarlos en su formato
correspondiente.
Si el programa produce una salida, se debe especificar cmo generar y
dar formato a los resultados.

En el caso de la resolucin de problemas complejos es necesario dividirlos o


descomponerlos en subproblemas o mdulos y aplicar los pasos anteriores
para analizar individualmente los requisitos correspondientes, as como la
posible relacin o conexin entre cada mdulo. El anlisis del problema
requiere una definicin clara que considere exactamente lo que el programa
har y la solucin que se espera.

Diseo del algoritmo.


Despus de analizar el problema y la descripcin de las especificaciones
necesarios, el paso siguiente es disear un algoritmo que lo resuelva; para
esto, la computadora necesita que se le indiquen las tareas o acciones a
ejecutar y su orden sucesivo. Un algoritmo es un mtodo para resolver un
problema mediante una serie de pasos precisos, definidos y finitos (la solucin
se alcanza en tiempo definido).
Los pasos sucesivos que indican las acciones o instrucciones a ejecutar por la
mquina constituyen el algoritmo; para completarlo se requiere el diseo
previo del mismo, lo cual es independiente tanto del lenguaje de programacin

en que se expresar como de la computadora que lo ejecutar. En la resolucin


del problema, el algoritmo se puede expresar en un lenguaje de programacin
diferente y ejecutarse en una computadora distinta, pero ser siempre el
mismo; por ejemplo una analoga de la vida diaria, una receta de cocina se
puede expresar en espaol, ingls o francs, pero independientemente del
lenguaje que hable el cocinero, los pasos de la receta sern los mismos.
La especificacin del orden en que se realizan las instrucciones o acciones del
programa, se denomina control del programa; este control se realiza con
instrucciones secuenciales o repetitivas (bucles o lazos). Las instrucciones del
algoritmo en los lenguajes de programacin de alto nivel tambin se conocen
como sentencias.
En la etapa de anlisis del proceso de programacin se determina lo que el
programa har y en la etapa de diseo se define cmo se realizar la tarea
solicitada; los mtodos ms eficaces para disear se basan en la sentencia de
Julio Csar: divide y vencers; es decir, la resolucin de un problema complejo
se realiza dividiendo el problema en subproblemas y a continuacin
fraccionando estos subproblemas en otros de nivel ms bajo hasta que pueda
implementarse una solucin; este mtodo se conoce tcnicamente como
diseo descendente (top-down) o modular. El proceso de dividir el problema en
etapas y expresar cada paso en forma detallada se denomina refinamiento
sucesivo, donde cada subprograma se resuelve mediante un mdulo o
subprograma que tiene un solo punto de entrada y un solo punto de salida.
Cualquier software bien diseado consta de un programa principal siendo ste
el mdulo de nivel ms alto que llama a subprogramas o mdulos de nivel ms
bajo que a su vez pueden llamar a otros subprogramas. Los mdulos pueden
planearse, codificarse, comprobarse y depurarse independientemente, incluso
por diferentes programadores que los podrn combinar entre s.
El proceso implica ejecutar los siguientes pasos hasta que el programa se
concluye:
1.
2.
3.
4.

Programar un mdulo.
Comprobarlo.
Si es necesario, depurarlo.
Combinarlos con los mdulos anteriores.

El proceso que convierte los resultados del anlisis del problema en un diseo
modular con refinamientos sucesivos que permitan una posterior traduccin a
un lenguaje se denomina diseo del algoritmo, y es independiente del lenguaje
de programacin en el que posteriormente se codificar.
Como ltimo paso, en el diseo del algoritmo se debe comprobar y verificar su
exactitud; es decir, que produzcan un resultado en un tiempo finito. Los
mtodos que utilizan algoritmos se denominan algortmicos. En contraste con
los mtodos heursticos que implican algn juicio o interpretacin, los primeros
se pueden implementar en computadoras, mientras que los segundos, con
dificultad. En los ltimos aos las tcnicas de inteligencia artificial han hecho

posible la implementacin del proceso heurstico en computadoras. Ejemplos


de algoritmos son instrucciones para montar una bicicleta, hacer una receta de
cocina, obtener el mximo comn divisor de dos nmeros, etc.
Los algoritmos se pueden expresar y representar grficamente por medio de
frmulas, diagramas de flujo N-S y pseudocdigos; esta ltima representacin
es la ms utilizada en las tcnicas de programacin modernas. Por ejemplo, un
algoritmo para escribir la tarea ir al cine a ver la de pelcula de Harry Potter
se puede describir de la forma siguiente:
1. inicio
2. ver la cartelera de cines en internet
3. si no proyectan Harry Potter entonces
3.1.
decidir otra actividad
3.2.
bifurcar al paso 7
sino
3.3.
ir al cine
fin_si
4. si hay fila entonces
4.1
formarse
4.2
mientras haya personas delante hacer
4.2.1
avanzar en la fila
fin_mientras
fin_si
5.
si hay localidades entonces
5.1
comprar una entrada
5.2
ingresar a la sala
5.3
localizar la(s) butaca(s)
5.4
mientras proyectan la pelcula hacer
5.4.1
ver la pelcula
5.5
abandonar el cine
si_no
5.6
refunfuar
fin_si
6.
volver a casa
7.
fin
En el algoritmo anterior hay diferentes aspectos a considerar. En primer lugar,
algunas palabras reservadas se han escrito deliberadamente en negrita
(mientras, si_no; etc.). Estas palabras describen las estructuras
fundamentales y los procesos de toma de decisin en el algoritmo; tambin
incluyen los conceptos importantes de seleccin (expresadas por si-entoncessi_no, if-then-else) y de repeticin (expresadas por mientras-hacer, hacermientras o a veces repetir-hasta o iterar-fin_iterar, en ingls, while-do y
do-while, repeat-until) que se encuentran en casi todos los algoritmos,
especialmente en los de proceso de datos. La capacidad de decisin permite
seleccionar alternativas de acciones a seguir o indicar la repeticin una y otra
vez de operaciones bsicas:
si proyectan la pelcula seleccionada ir al cine

si_no ver la televisin, ir al ftbol o leer el peridico


Este enfoque requiere normalmente de herramientas simples como lpiz o
bolgrafo y papel, adems es ms fcil descubrir los errores de sintaxis, lgicos
o de ejecucin en un programa bien analizado y diseado; posteriormente
tambin es ms sencillo seguir y modificar su secuencia de instrucciones,
tambin llamada traza.

Codificacin.
La codificacin es la escritura en lenguaje de programacin de la
representacin del algoritmo desarrollada en las etapas precedentes. Puesto
que el diseo de un algoritmo es independiente del lenguaje de programacin
utilizado para su implementacin, el cdigo puede escribirse con facilidad en
un lenguaje o en otro.
Para convertir el algoritmo en programa se deben sustituir las palabras
reservadas en espaol por sus equivalentes en ingls, y las
operaciones/instrucciones indicadas en lenguaje natural por las
correspondientes en el lenguaje de programacin correspondiente, siguiendo
las reglas de sintaxis del mismo. Al terminar el diseo del algoritmo y verificar
su exactitud, se procede a convertirlo en un programa y se escribe en lenguaje
Java en alguna de sus versiones. Una vez escrito el cdigo fuente del
programa, ste se debe de introducir en la computadora mediante un editor de
textos siguiendo las reglas de sintaxis de Java. Esta operacin se realiza con un
programa editor para posteriormente convertir el cdigo fuente en un archivo
de programacin que se guarda o graba en disco para su uso posterior.

Compilacin-interpretacin de un programa.
El programa fuente debe traducirse a su lenguaje maquina; este proceso lo
debe realizar con el compilador y el sistema operativo, que prcticamente se
encarga de ello. La ejecucin del cdigo fuente en el compilador verifica la
exactitud y correccin de la sintaxis del programa fuente.
La etapa posterior a la compilacin es la ejecucin del programa, y como
sealan las normas histricas de la programacin, la compilacin exitosa de un
programa solo garantiza que ste cumple fielmente a las reglas de sintaxis,
pero no que funcione correctamente. Puede ocurrir que la ejecucin se
interrumpa y termine de modo anormal por la existencia de errores lgicos,
como una divisin entre cero o una mala identificacin de datos; incluso las
teoras tradicionales de programacin advierten que se pueden producir
resultados errneos aun terminando normalmente el programa. En estas
circunstancias es necesario volver a examinar el cdigo fuente, el algoritmo y,
en muchos casos, revisar el anlisis y las especificaciones del problema, esto
se debe a que un anlisis incorrecto o un mal diseo de especificaciones
pueden producir un mal algoritmo.

Verificacin y depuracin.
La verificacin o depuracin de un programa es el proceso de su ejecucin con
una amplia variedad de datos de entrada llamados de test o prueba que

determinaran si el programa tiene errores (bugs) o no; verificar supone el


empleo de una amplia fama de fatos de prueba, tales como valores normales
de entrada, valores extremos de entrada, etctera, para comprobar los lmites
y aspectos especiales del programa.
Los errores que se pueden hallar en la verificacin son:
1. Errores de compilacin. Normalmente son erratas de sintaxis que se
producen por el uso incorrecto de las reglas del lenguaje de
programacin; un error de este tipo impedir a la computadora
comprender la instruccin, tampoco se obtendr el programa objeto y el
compilador imprimir una lista de todas las equivocaciones encontradas
durante la compilacin.
2. Errores de ejecucin. Estos errores se producen por instrucciones que la
computadora puede comprender, pero no ejecutar; por ejemplo: divisin
entre cero y races cuadradas e nmeros negativos; estos errores
detendrn la ejecucin del programa y tambin se imprimir un mensaje
de error.
3. Errores lgicos. Se producen en la lgica del programa y su fuente suele
ser el diseo del algoritmo; estos errores son los ms difciles de
detectar porque el programa puede funcionar y no producir errores de
compilacin ni de ejecucin, y slo pueden advertirse al obtener
resultados incorrectos. En este caso se debe volver a la fase de diseo
del algoritmo, modificarlo, cambiar el programa fuente, compilar y
ejecutar una vez ms.

Documentacin y mantenimiento.
La documentacin de un programa consiste en describir los pasos a seguir en
el proceso de su resolucin; su importancia destaca por su decisiva influencia
en el producto final. Aquellos programas pobremente documentados son
difciles de leer, an ms difciles de depurar y casi imposibles de mantener y
modificar.
La documentacin de un programa puede ser interna y externa: la primera se
encuentra en lneas de comentarios, mientras que la segunda incluye anlisis,
diagramas de flujo o pseudocdigos y manuales de usuario con instrucciones
para ejecutar el programa e interpretar los resultados.
La documentacin es vital cuando se desea corregir posibles errores futuros, o
bien, cambiar el programa; este ltimo proceso se denomina mantenimiento
del programa y con cada cambio, la documentacin debe actualizarse para
facilitar ajustes posteriores.
Documentacin interna.
Es la que se incluye dentro del cdigo del programa fuente mediante
comentarios que ayudan a la compresin del cdigo; todas las lneas de
programas que comienzan con el smbolo //, los cuales son cometarios que el
programa no necesita y que la computadora ignora; considerando esto, el

objetivo del programador debe ser escribir cdigos sencillos y limpios. (Joyanes
Aguilar & Zahonero Martnez, 2011)

Manejo bsico de error y excepcin.


Un aspecto esencial de la programacin se relaciona con el manejo de posibles
errores que puedan surgir durante la ejecucin de un programa.
Un aspecto muy importante de la programacin se relaciona con el manejo de
posibles errores durante la ejecucin de un programa. El mtodo main puede
recibir argumentos incorrectos. O bien un mtodo que espera un argumento
positivo puede recibir un valor negativo. Las operaciones aritmticas pueden
producir sobreflujo o subflujo. La E/S a archivos puede tener problemas de
permiso de acceso u otras dificultades. Un programa bien escrito debe detectar
los errores y tomar las acciones apropiadas.

Despliegue de mensajes de error.


Un mtodo main debe verificar primero que sean correctos los argumentos
proporcionados en la lnea de comandos. Si estos son inaceptables, entonces
debe desplegarse un mensaje claro que establezca la naturaleza y la causa del
error (si se conoce). Debe utilizarse el objeto System.err para enviar mensajes
de error que aparezcan inmediatamente en pantalla, sin pasar por la memoria
temporal. Una instruccin condicional como:
If (args.length =2)
{
System.err.println(Progname + : excepcts 2 args but was given
+ args.length);
System.err.println(Usage + Progname + input-file output-file);
System.exit(1);
}
Verifica el nmero de argumentos que se proporcionan en la lnea de
comandos. Siempre identifique la unidad o subunidad del programa que
despliega el mensaje de error. Aqu el nombre es Progname (una cadena) de la
clase del mtodo main en cuestin. Cuando es lo apropiad, un nombre de
mtodo estrecha an ms la ubicacin del error.
Despus de desplegar un mensaje de error puede ser ejecutndose un mtodo,
devolver un valor determinado no producido normalmente, o elegir que se
aborte. La llamada System.exit (estado) termina la ejecucin de un programa.
Para una terminacin normal, el valor de estado deber ser generalmente cero.
Para una terminacin anormal, como un error, se usa un estado positivo, por lo
general 1.

Manejo de excepcin simple.


En Java los errores no esperados al momento de la ejecucin se manejan con el
mecanismo de excepcin. Un mtodo integrado o definido por el usuario,
puede lanzar un objeto de excepcin de algn tipo conocido, logrando que el
control de regrese al mtodo ms prximo en la cadena de llamadas que
capturan este tipo de excepcin o devuelven todo el control al intrprete de
Java.
Por ejemplo, el mtodo System.in.read, como muchos otros relacionados con
E/S de Java, detecta un error de E/S y lanza una excepcin. Diferentes objetos
de excepcin se utilizan para representar distintos tipos de errores.
System.in.read puede lanzar un objeto IOException. Es importante saber cules
excepciones puede lanzar un mtodo y siempre debe documentarse con
claridad.

Intrprete de Java
Llama al mtodo

ClaseX.main()

Obj1.metodo1()

Lanza excepcin

Objn.metodok()

Cuando escribe un mtodo que contiene una llamada a otro que puede lanzar
una excepcin, necesita realizar una de las dos acciones siguientes:
1. Capturar la potencial excepcin y tratar el error en el mtodo que
escribi.
2. No capturar la excepcin y dejar que pase a un mtodo superior en la
cadena de llamadas. En este caso, necesita indicarlo as agregando una
clausula throws al final de su encabezado. Tambin es necesaria una
clusula throws, si su mtodo lanza una excepcin por cuenta propia.

Una vez que se captura una excepcin, un mtodo puede tratar


apropiadamente el error. Por ejemplo, los constructores:
Public FileIntutStream (String filename) throws FleNotFoundException
Public FileOutputStream (String filename) throws IOException
Establecen objetos para E/S a archivos. Cuando usted los llama, necesita
capturar las excepciones indicadas.
El bloque de prueba, se utiliza para capturar excepciones. He aqu una forma
simple:
prueba {

instrucciones

}
captura (tipo-e1

e)

instrucciones

captura (tipo-e2

e)

instrucciones

Las clusulas de captura hacen coincidir secuencialmente las excepciones


causadas por cualquier instruccin en la parte prueba con los tipos de la lista.
Cada una se encuentra en forma de una definicin de mtodo. El objeto de
excepcin se pasa al parmetro de la primera clusula de coincidencia y se
ejecuta la instruccin.

E/S de texto a un archivo y ejemplo de manejo de error.


Mejoremos la clase Lowercase para que maneje E/S estndar y E/S a archivos.
java Lowercase
en UNIX)

<archivoentrada> archivosalida (redireccionamiento de E/S

java Lowercase

archivoentrada

archivosalida

Tambin se mejorar el programa para que sea independiente del conjunto de


caracteres. El mtodo doio realiza la tarea de convertir caracteres en
maysculas.
///////
Lowercase.java
//
Example for text-file I/O
import java.io.*;

///////

class Lowercase
{
public static void doio (InputStream i, OutputStream o)
{
int c;

InputStreamReeader in = new InputStreamReader(i);


OutputStreamWriter out = new OutputStreamWriter(o);

//(1)
//(2)

Try
{
While ((c = in.read()) >=0 )
{
C = Character.toLowerCase ((char) c);
Out.write (c);
}
Out.flush (); //produce toda la salida
} catch (IOException e)
{
System.err.println(doio: I/O Problem);
System.err.println(e.getMessage ());

//(3)

System.exit(1);
}
}
//el metodo main se muestra despues
}
El doio utiliza los objetos InputStreamReader y OutputStreamWriter, para hacer
la E/S de texto independiente del conjunto de caracteres (lneas 1-2). Tambin
captura posibles excepciones del tipo IOException causadas por in.read() u
out.write(c).
Observe cmo un objeto de excepcin contiene un mensaje que puede
desplegarse (lnea 3).
El mtodo main verifica los argumentos de la lnea de comandos, abre los
archivos apropiados y llama a doio.
public static void main (String args [])
{
int argn = args.lenght;
if(argn == 0)

//utiliza E/S estandar

doio (System.in, System.out);

else if (argn == 2) //utiliza archivos dados


{
Try
{
FileInputStream infile = new
FileInputStream(args[0]);
FileOutputStream ofile = new
FileOutputStream(args[1]);
doio(infile, ofile);
infile.close(); ofile.close();
} catch (FileNotFoundException e)

//(4)

{
System.err.println(Cant opne input file + args[0]);
System.err.println(e.getMessage());
System.exit(1);
}
Catch (IOException e)

//(5)

{
System.err.println(Cant open output file + args[1]);
System.err.println(e.getMessage());
System.exit(1);
}
}
else

//error

//(6)

{
System.err.println(Usage: Lowercase infile outfile);
System.exit(1);
}
}
Tambin main anticipa errores comunes: fallas al abrir el archivo de entrada
(lnea 4). Imposibilidad de abrir el de salida (lnea 5) y numero incorrecto de

argumentos (lnea 6). En el ltimo caso, se despliega una breve gua sobre la
manera de utilizar el programa.

Consejos sobre programacin en Java.


He aqu algunos consejos bsicos de programacin que le facilitarn la
escritura de programas en Java:
o
o
o
o

Importe java.io.* si utiliza ms que la E/S estndar.


Siempre termine una declaracin. Una definicin de clase no tiene punto
y coma de terminacin.
Una instruccin simple debe terminar con un punto y coma; pero no una
instruccin compuesta.
El mtodo main de una clase se declara:
Public static void main(String[] args).

o
o
o

o
o
o
o
o

Las variables de arreglo y de objeto tienen valores de referencia. Antes


de usarlas debe asignar un valor a una variable, sea por inicializacin o
asignacin.
Los arreglos y los objetos se crean dinmicamente con el operador new,
que devuelve una referencia al objeto recin creado.
En el caso de los arreglos, utilice indizacin basada en cero. As, un
arreglo de longitud 100 se indiza del 0 al 99. Recuerde que arr.length da
la longitud del arreglo arr, mientras que arr.length() devuelve la de la
cadena str.
Utilice System.in, System.out y System.err para E/S estndar.
Los argumentos siempre se pasan como valor en llamadas a mtodos.
Los ciclos en Java usan condiciones de continuacin. La iteracin termina
cuando sta se vuelve falsa.
Emplee el operador + para unir todo tipo de datos con cadenas.
Aprenda modismos como for(;;) (ciclo infinito, for(int i=0; i<j; i++),
while(i-->0), while ( (c==System.in.read()) !=-1). (Wang, 2000)

También podría gustarte