public class Nombres { public static void main(String[] args) { System.out.println("Su nombre es: " + args[0]); System.out.println("Sus apellidos son: " + args[1] + " " + args[2]); } } |
Se inicia este programa con la clásica definición de Clase.
Se define el método principal ( main
), el uso de corchetes ([]
) al lado de la Clase String indica un Arreglo de String's.
Se imprimen dos mensajes a pantalla a través de la Clase System.out.println.
El primer mensaje imprime el primer valor del arreglo de entrada, a través de su referencia args
; nótese que este primer valor es indicado con el numero cero, esta es Sintaxis de arreglos la cual será descrita a fondo en otra sección.
El segundo mensaje imprime el segundo y tercer valor del arreglo.
Los valores de entrada para el método main
son tomados directamente de la linea de ejecución del programa, por lo que una vez compilada la Clase (javac Nombres.java
) la ejecución seria llevada acabo de la siguiente manera:
$ java Nombres Ana Rodriguez King |
En este caso el primer valor del arreglo de String's seria el Nombre Ana
, mientras el segundo y tercero serian Rodriguez
y King
respectivamente; inclusive si no proporciona ningún argumento será generado un error ("Exception"), a continuación se describe este mismo programa con un bloque try/catch para manejar el error de una manera apropiada :
public class NombresBlock { public static void main(String[] args) { try { System.out.println("Su nombre es: " + args[0]); System.out.println("Sus apellidos son: " + args[1] + " " + args[2]); } catch (ArrayIndexOutOfBoundsException ex) { System.out.println("Esta tratando de accesar datos fuera del Arreglo"); } catch (Exception ex) { System.out.println("Ocurrió un error genérico"); } } } |
La única diferencia entre esta Clase y aquella descrita anteriormente es el Bloque try/catch .
Al estar siendo ejecutadas las instrucciones de la sección try, si es generado un error, se inicia la inspección sobre las secciones catch hasta que el error ("Exception") coincida con una declaración.
En esta caso, si son omitidos algunos parámetros de entrada para el programa, dentro del bloque try se estaría tratando de accesar elementos no definidos en el arreglo, este tipo de error ("Exception") es precisamente ArrayIndexOutOfBoundsException
, por lo que serán ejecutadas las instrucciones definidas dentro de este bloque.
Ahora bien, nótese que las instrucciones del bloque catch con la Clase Exception
nunca son ejecutadas, lo anterior se debe a que el programa termina al ser atrapado ("catch") en el bloque catch inicial; la única manera en que pudieran ser ejecutadas las instrucciones de este último bloque sería si el programa generara otro error ("Exception") distinto a ArrayIndexOutOfBoundsException
.