lunes, 30 de noviembre de 2009
jueves, 26 de noviembre de 2009
Parámetros para feeds RSS
Parámetro | Descripción | Valores admitidos | Ejemplo |
max-results | Limita el número máximo de resultados. El valor por defecto es 25. El valor máximo es 100. | 25, 1-100 | ?max-results=25 |
start-index | Selecciona el primer resultado a mostrar. | 1, valorNumérico | ?start-index=26 |
date | Limita los resultados al rango de fechas especificado | MMDDYYYY-MMDDYYYY | ?date=01011980-12311989 |
sort | Especifica el orden de los resultados | relevance, date_ascending, date_descending | ?sort=date_ascending |
category | Limita los resultados a la categoría especificada | cualquierCategoría | ?category=ejemplo |
orderby | Ordena los resultados según la fecha de publicación o de actualización | published, updated | ?orderby=updated |
alt | Formato de salida | atom, rss, json, json-in-script | ?alt=rss |
published-min published-max | Establece rango de resultados por fecha de publicación | Fecha en formato RFC3339 | ?published-max=2008-12-31 |
updated-min, updated-max | Establece rango de resultados por fecha de actualización | Fecha en formato RFC3339 | ?updated-max=2008-12-31 |
callback | Usado con json-in-script para especificar el nombre de la función callback |
Utilización:
http://blogname.blogspot.com/feeds/posts/default?....
Para obtener sólo los de una etiqueta:
http://blogname.blogspot.com/feeds/posts/default/-/labelname
Para obtener sólo los de varias etiquetas
http://blogname.blogspot.com/feeds/posts/default/-/labelname1/labelname2
Para obtener sólo los comentarios
http://blogname.blogspot.com/feeds/comments/default
lunes, 23 de noviembre de 2009
Depuración de programas con NetBeans
La depuración (debug) permite examinar las aplicaciones para buscar errores, ya que posibilita observar las líneas que se van ejecutando, así como los valores que van tomando las variables en cada paso.
Para realizar la depuración de un programa, se debe establecer en primer lugar un punto de interrupción donde debe pararse la ejecución de la aplicación. Esto se consigue con alguna de las siguientes acciones sobre la línea de código en la que se desee establecer el punto de interrupción:
Una vez establecido al menos un punto de interrupción, se debe ejecutar la aplicación en modo depuración. Esto se puede llevar a cabo sobre el proyecto o sólo sobre el archivo actual:
En la parte inferior se muestra la ventana de observación de las variables locales, en la que se puede comprobar el valor que va tomando cada variable.
A partir del momento en que se para la ejecución del programa se puede continuar con la ejecución línea a línea utilizando la opción "Continuar ejecución":
Así se va mostrando en verde la línea que se va ejecutando en cada momento, y se van actualizando en la ventana inferior los valores que van tomando las variables locales.
En caso de que se desea que el programa continúe la ejecución sin más paradas, se dispone de la opción "Continuar":
Para realizar la depuración de un programa, se debe establecer en primer lugar un punto de interrupción donde debe pararse la ejecución de la aplicación. Esto se consigue con alguna de las siguientes acciones sobre la línea de código en la que se desee establecer el punto de interrupción:
- Clic en el margen izquierdo
- Menú contextual > "Ocultar/Mostrar línea de punto de interrupción"
- Pulsando la combinación de teclas: Ctrl + F8
- Menú "Depurar > Ocultar/Mostrar línea de punto de interrupción"
Una vez establecido al menos un punto de interrupción, se debe ejecutar la aplicación en modo depuración. Esto se puede llevar a cabo sobre el proyecto o sólo sobre el archivo actual:
- Depurar archivo actual:
- Menú contextual > "Debug nombreArchivo"
- Menú "Depurar > Debug nombreArchivo"
- Pulsando la combinación de teclas: Ctrl + Mayúsculas + F5
- Depurar proyecto:
En la parte inferior se muestra la ventana de observación de las variables locales, en la que se puede comprobar el valor que va tomando cada variable.
A partir del momento en que se para la ejecución del programa se puede continuar con la ejecución línea a línea utilizando la opción "Continuar ejecución":
Así se va mostrando en verde la línea que se va ejecutando en cada momento, y se van actualizando en la ventana inferior los valores que van tomando las variables locales.
En caso de que se desea que el programa continúe la ejecución sin más paradas, se dispone de la opción "Continuar":
jueves, 19 de noviembre de 2009
Control de excepciones
Una excepción es un evento que ocurre durante la ejecución de un programa y detiene el flujo normal de la secuencia de instrucciones del programa.
El control de dichas excepciones se utiliza para la detección y corrección de errores. Si hay un error, la aplicación no debería "morirse".
Para manejar las excepciones en Java, se actúa de la siguiente manera:
Por ejemplo, cuando se intenta convertir al tipo de dato numérico entero un dato introducido por el usuario en un campo de texto se utiliza una sentencia como:
Si el valor introducido no es numérico, sino una cadena de caracteres, la llamada a Integer.valueOf produce una excepción, como se puede apreciar en la salida estándar:
Se puede apreciar que se produce una excepción del tipo NumberFormatException, por tanto se debería captura esa excepción para controlar el error.
Si no se tiene claro el tipo de excepción que se quiere controlar, o se quiere controlar cualquier tipo de excepción que se pueda producir, se puede indicar en el catch la clase Exception que es genérica para todas las excepciones, tal como se ha indicado anteriormente.
Si se desea mostrar qué tipo de error se ha producido se puede utilizar el método toString:
El control de dichas excepciones se utiliza para la detección y corrección de errores. Si hay un error, la aplicación no debería "morirse".
Para manejar las excepciones en Java, se actúa de la siguiente manera:
- Se intenta (try) ejecutar la sentencia o bloque de sentencias que pueden producir algún error.
- Se captura (catch) las posibles excepciones que se hayan podido producir, ejecutando una serie de sentencias que informen o intenten resolver el error.
- Finalmente (finally) se puede ejecutar una serie de sentencias tanto si se ha producido un error como si todo ha ido bien.
try
{
Sentencias que pueden producir error
}
catch(ClaseExcepción variableRecogeExcepción)
{
Sentencias que informan o procuran solucionar el error.
Puede haber varios catch.
La variable no se tiene declarar antes.
}
finally
{
Sentencias que deben ejecutarse en cualquier caso (opcional)
}
El elemento ClaseExcepción que aparece junto a catch, debe ser una de las clases de excepción que utiliza Java. Al generarse el error durante la ejecución podemos comprobar qué clase de excepción se ha producido. De forma general, la clase Exception recoge todos los tipos de excepciones. Si se desea un control más exhaustivo del tipo de error que se produce, se debe concretar más la clase de excepción correspondiente.{
Sentencias que pueden producir error
}
catch(ClaseExcepción variableRecogeExcepción)
{
Sentencias que informan o procuran solucionar el error.
Puede haber varios catch.
La variable no se tiene declarar antes.
}
finally
{
Sentencias que deben ejecutarse en cualquier caso (opcional)
}
Por ejemplo, cuando se intenta convertir al tipo de dato numérico entero un dato introducido por el usuario en un campo de texto se utiliza una sentencia como:
Se puede apreciar que se produce una excepción del tipo NumberFormatException, por tanto se debería captura esa excepción para controlar el error.
try
{
int num = Integer.valueOf(campoNúmero.getText());
}
catch(NumberFormatException e)
{
System.out.println("Error: El valor indicado no es un número");
}
{
int num = Integer.valueOf(campoNúmero.getText());
}
catch(NumberFormatException e)
{
System.out.println("Error: El valor indicado no es un número");
}
lunes, 9 de noviembre de 2009
Sentencia for
La sentencia for se caracteriza porque permite repetir un bloque de instrucciones un número de veces fijado de antemano.
Utiliza una variable contador que parte de un valor inicial, se incrementa un según un valor de incremento establecido, y al superar un valor final prefijado se finalizará la ejecución del bucle.
Se debe utilizar el siguiente formato:
Donde se utilizan los siguientes elementos:
La instrucción for es una forma compacta de representar un bucle while, siendo la estructura equivalente a la anterior, la presentada a continuación:
Utiliza una variable contador que parte de un valor inicial, se incrementa un según un valor de incremento establecido, y al superar un valor final prefijado se finalizará la ejecución del bucle.
Se debe utilizar el siguiente formato:
for (Inicialización; Condición; Incremento)
{
BloqueDeSentencias;
}
{
BloqueDeSentencias;
}
Donde se utilizan los siguientes elementos:
- Inicialización: Una sentencia de asignación (o varias separadas por comas) donde la variable de control del bucle toma un valor inicial.
- Condición: Mientras esta expresión condicional valga true se repetirá el bucle. Se evaluará al inicio de cada repetición del bucle.
- Incremento: Sentencia (o sentencias) que actualiza la variable de control incrementándola o decrementándola.
- Inicializar la variable de control del bucle.
- Evaluar la condición.
- Si el resultado es true:
- Ejecutar BloqueDeSentencias.
- Incrementar o decrementar la variable de control según la instrucción indicada en Incremento.
- Volver al punto 2.
- Si el resultado es false:
- Ir al punto 3.
- Continuar la ejecución del programa.
Sentencia do-while
La sentencia do-while se caracteriza porque permite repetir un bloque de instrucciones varias veces, ejecutándose obligatoriamente al menos 1 vez. Por lo que se puede ver que es muy similiar a la sentencia while, con la diferencia del número mínimo de veces que se ejecuta el bloque de instrucciones que contiene.
La condición que se establece se evalúa después de ejecutar el bloque de instrucciones que contiene la instrucción do-while.
Se debe utilizar el siguiente formato:
El orden de ejecución de una sentencia do-while es la siguiente:
En este ejemplo conviene observar que si el usuario introduce el valor 0 o cualquier valor negativo, el programa entrará una vez en el bloque de sentencias de la instrucción do-while, mostrando el valor 1.
La condición que se establece se evalúa después de ejecutar el bloque de instrucciones que contiene la instrucción do-while.
Se debe utilizar el siguiente formato:
do
{
BloqueDeSentencias;
} while (condición);
Como siempre, si el bloque de sentencias está formado por una única sentencia, se puede prescindir de las llaves, y hay que destacar que termina con un punto y coma, a diferencia de la sentencia while.{
BloqueDeSentencias;
} while (condición);
El orden de ejecución de una sentencia do-while es la siguiente:
- Ejecutar el bloque de sentencias.
- Evaluar la condición.
- Si el resultado es true, volver al punto 1.
- Si el resultado es false ir al punto 3.
- Continuar la ejecución del programa.
public class EjemploDoWhile extends javax.swing.JFrame
{
public EjemploDoWhile()
{
initComponents();
}
/* Código generado automáticamente no mostrado */
private void botónGenerarActionPerformed(java.awt.event.ActionEvent evt)
{
int numMax = Integer.valueOf(campoMáximo.getText());
int numActual = 1;
int incremento = 1;
areaMensajes.setText("");
do
{
areaMensajes.append(String.valueOf(numActual) + " ");
numActual+=incremento;
incremento++;
}while (numActual <= numMax);
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new EjemploDoWhile().setVisible(true);
}
});
}
private javax.swing.JTextArea areaMensajes;
private javax.swing.JButton botónGenerar;
private javax.swing.JTextField campoMáximo;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
}
{
public EjemploDoWhile()
{
initComponents();
}
/* Código generado automáticamente no mostrado */
private void botónGenerarActionPerformed(java.awt.event.ActionEvent evt)
{
int numMax = Integer.valueOf(campoMáximo.getText());
int numActual = 1;
int incremento = 1;
areaMensajes.setText("");
do
{
areaMensajes.append(String.valueOf(numActual) + " ");
numActual+=incremento;
incremento++;
}while (numActual <= numMax);
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new EjemploDoWhile().setVisible(true);
}
});
}
private javax.swing.JTextArea areaMensajes;
private javax.swing.JButton botónGenerar;
private javax.swing.JTextField campoMáximo;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
}
Suscribirse a:
Entradas (Atom)