Excepeciones en Java
¿Qué son las excepciones?
A veces, cuando llamamos a un método, puede que algo vaya mal dentro del método y no pueda devolvernos un resultado. Por ejemplo, puede que le pasemos parámetros al método que no le gustan, como algún null, algún valor fuera de rango, etc. Es posible que el método quiera acceder a un fichero o a una base de datos y tenga problemas porque no existe el fichero, no tiene permisos de lectura, no puede conectarse con la base de datos, etc.
Tradicionalmente estos métodos o funciones, en lenguajes como C, devolvían un valor que se reconocía como no válido. Podía ser un NULL o más habitualmente, un -1. Por ejemplo, la función open() de C intenta abrir un fichero. Si lo consigue, devuelve un entero que es el descriptor del fichero. Si no lo consigue, devuelve -1.
Esta opción no es la más elegante. Muchas veces no podemos devolver un valor para indicar error. Por ejemplo, a la función atoi() de C se le pasa una cadena de texto como "123" y devuelve el entero 123. Esta función no puede devolver -1 para indicar error, puesto que si le pasamos la cadena "-1", debería devolver justamente -1.
Por ello, los métodos en los lenguajes más modernos como C++ o Java, además de devolver un valor, pueden "lanzar una excepción". Por ejemplo, la clase Writer de java, en su método write(), se le pasan unos bytes para escribir en algún sitio, un fichero por ejemplo. Si hay algún error, "lanza una excepción" IOException, para indicar que ha habido algún error.
Capturar excepciones: try-catch
Para llamar a ese método, debemos "capturar" la excepción, poniendo el código en bloques try-catch, de esta manera
Writer w = ...;
byte [] unosBytes = ...;
try
{
unaLineaDeCodigo();
w.write (unosBytes);
otraLineaDeCodigo();
}
catch (IOExcepcion e)
{
System.err.println("Error al escribir: "+e.toString());
}
Cuando se ejecuta este código, primero se ejecuta unaLineaDeCodigo(), luego w.write(unosBytes) y si no hay problemas, se ejecuta otraLineaDeCodigo(). En caso de problemas con w.write(unosBytes), la ejecución salta automáticamente al bloque catch(), ejecutándose el System.err.println(). NO se ejecutaría otraLineaDeCodigo().
Si el código dentro del bloque try genera varios tipos de excepciones, podemos poner varios bloques catch, para capturar por separado cada tipo. Por ejemplo,
try
{
codigo();
masCodigo();
yMas();
}
catch (IOException e)
{
trataIOException(e);
}
catch (DataFormatException e2)
{
trataDataFormatException(e2);
}
catch (...)
Etiquetas:
Excepciones,
Java,
Programación
Iterator - Iteradores en Java
Iterator en Java
Un Iterator o Iterador es un patrón de diseño que nos ofrece una interfaz estándar para recorrer una estructura de datos sin que nos tengamos que preocupar por la representación interna de los datos de dicha estructura.
Esta forma de recorrer estructuras de datos ofrece muchas ventajas entre las que podemos destacar que nuestro código no depende de la estructura de datos.
Por lo tanto la “estructura” puede ser un árbol binario o una lista doblemente enlazada ya que el iterador nos abstrae del modo de realizar el recorrido. De este modo podemos sustituir de manera sencilla estructuras de datos en nuestro código sin que se nos presenten problemas desagradables.
Este patrón lo podemos sustituir por un bucle for, que haría básicamente lo mismo, pero la velocidad en la búsqueda es superior en el patrón iterator con respecto al bucle for.
En Java tenemos reflejado el patrón Iterator en la clase java.util.Iterator que es ampliamente utilizada en las conocidas Collections.
Por ejemplo, recorrer un array de empleados:
ArrayList<String> empleados = new ArrayList<String>();
//rellenar el array
Iterator it = empleados.iterator();
while (it.hasNext())
{
//Código a realizar en cada posición
System.out.println(it.next());
// Imprime el contenido del array a la vez que avanza
}
Para la misma estructura el bucle for sería
for (int i = 0; i < empleados.size(); i++)
{
// Código a realizar para cada miembro del arraylist
} //hacer otras cosas
Traducción al Español de la documentación oficial de PYGAME
Esta sección cuenta con la traducción al español de la documentación oficial de pygame, una biblioteca multimedia para python.
Descarga
Referencia
| Página | Descripción |
|---|---|
| pygame | El paquete pygame de nivel superior. |
| pygame.cdrom | Módulo de pygame para controlar CDROM de audio. |
| pygame.cdrom.CD | Clase para gestionar un dispositivo de cdrom. |
| pygame.color | Objeto de pygame para representaciones de color. |
| pygame.cursors | Módulo de pygame para cursores de mouse. |
| pygame.display | Módulo de pygame para controlar la ventana y pantalla de visualización. |
| pygame.display.Info | Genera un objeto de información sobre el dispositivo de video. |
| pygame.draw | Módulo de pygame para dibujar figuras. |
| pygame.event | Módulo de pygame para interactuar con eventos y pedidos. |
| pygame.event.Event | Genera un nuevo objeto de evento. |
| pygame.font | Módulo de pygame para cargar y dibujar fuentes. |
| pygame.font.Font | Genera un nuevo objeto Font a partir de un archivo. |
| pygame.font.SysFont | Genera un objeto Font a partir de las fuentes del sistema. |
| pygame.image | Módulo de pygame para la transferencia de imagen. |
| pygame.joystick | Módulo de pygame para interactuar con dispositivos de joystick. |
| pygame.joystick.Joystick | Genera un nuevo objeto Joystick. |
| pygame.key | Este modulo contiene funciones para gestionar el dispositivo de teclado. |
| pygame.mask | Módulo de pygame para gestionar máscaras de imágenes. |
| pygame.mask.Mask | Objeto de pygame para representar máscaras de bit 2D. |
| pygame.mixer | Módulo de pygame para cargar y reproducir sonidos. |
| pygame.mixer.music | Módulo de pygame para controlar la reproducción de música. |
| pygame.mixer.Channel | Genera un objeto Channel (canal de audio) para controlar |
| pygame.mixer.Sound | Genera un nuevo objeto Sound a partir de un archivo. |
| pygame.mouse | Módulo de pygame para utilizar el mouse. |
| pygame.movie | Módulo de pygame para reproducir video mpeg. |
| pygame.movie.Movie | Carga un archivo de película MPEG. |
| pygame.overlay | Objeto de pygame para gráficos de video |
| pygame.pixelarray | Objeto de pygame para obtener acceso directo a los pixels de las |
| pygame.rect | Objeto de pygame que se utiliza para almacenar coordenadas rectangulares. |
| pygame.scrap | Módulo de pygame que ofrece soporte para el portapapeles (clipboard). |
| pygame.surfarray | Módulo de pygame para acceder a los pixels de una superficie |
| pygame.surface | Objeto de pygame para representar imágenes. |
| pygame.sprite | Módulo de pygame con clases básicas de objetos para juegos. |
| pygame.sprite.Sprite | Una clase base para objetos del juego visibles. |
| pygame.sprite.Group | Clase contenedora para varios Sprites. |
| pygame.sprite.GroupSingle | Grupo contenedor que almacena un solo Sprite. |
| pygame.sprite.LayeredDirty | El grupo LayeredDirty está diseñado para objetos DirtySprite, y es |
| pygame.sprite.DirtySprite | Una subclase de Sprite con mas características y funcionalidad. |
| pygame.sprite.LayeredUpdates | El grupo LayeredUpdates maneja capas (layers) que dibujan como grupos |
| pygame.sprite.OrderedUpdates | Una clase como RenderUpdates que dibuja objetos Sprite |
| pygame.sprite.RenderedUpdates | Clase de grupo que utiliza el procedimiento 'dirty rectangles'. |
| pygame.sndarray | Módulo de pygame para acceder a muestras de sonido. |
| pygame.time | Módulo de pygame para gestionar tiempo. |
| pygame.time.clock | Objeto que gestiona tiempo. |
| pygame.transform | Módulo de pygame para transformar superficies. |
| pygame.version | Módulo que contiene información de la versión. |
Fuente: http://www.losersjuegos.com.ar/traducciones/pygame
Etiquetas:
Programación,
Pygame,
Python,
Tutoriales
Configurar Python y Pygame con Eclpse. Programar Juegos en 2D.
Recientemente me adentré en el mundo de la programación de videojuegos. Y como buena newbie, he empezado por la programación 2D con Python.
Para tener un entorno de programación adecuado, he elegido instalar el plugin Pydev para Eclipse, y luego la libreríaPygame. Así que los pasos a seguir son:
- Instalar Python
- Descargar Eclipse
- Instalar Pydev para Eclipse (a través de Marketplace)
- Instalar Pygame
(ojo: tiene que ser la misma versión que la versión de Python instalada en el Paso 1) - Configurar Pygame en el path de Eclipse
Después de estos pasos, probablemente os seguirá marcando error en la importación del módulo Pygame en vuestros proyectos, pero esto es un fallo del editor Pydev para Eclipse y no debeis hacer caso. Podeis ejecutar sin problemas a pesar de estos errores.
Etiquetas:
Eclipse,
Programación,
Pygame,
Python
Instalación y configuración de entorno de desarrollo Android con Eclipse
Desde que salió Android en 2007, lo descargué y probé e hice un análisis del SDK de Android en el blog. Desde entonces he estado siempre con ganas de desarrollar algo serio. Parece el momento ideal dado el crecimiento enorme que está teniendo la plataforma a nivel mundial.
Además de esto, coincide que en mi trabajo actual tengo la opción de elegir hacia qué tecnologías orientar mi carrera. Y mis objetivos para este año van hacia Android y Ruby.
En fin, varias veces me consultaron cómo instalar el entorno de desarrollo Android para empezar a trabajar con el framework. Así que aprovechando que estoy haciendo una instalación nueva y actualizada del SDK en mi computadora de escritorio, vamos a ir listando los pasos para mandar para acá a otras personas que me lo consulten.
Etiquetas:
Android,
Eclipse,
Programación
PSP2 - NGP La nueva portátil de Sony.
NGP o lo que es lo mismo, Next Generation Portable. Ese es el nombre en clave que Sony acaba de poner a su futura PSP2.
Como hiciera Nintendo con su 3DS, en un evento sorpresa en Japón, Sony ha dado detalles de lo que nos espera … para Navidades de 2011. Será entonces cuando podamos ver en la calle la nueva consola portátil de los japoneses, la NGP, que esta vez sí parece que han dado en el clavo.
La empresa japonesa hay que admitir que ha puesto toda la carne en el asador para plantar cara a Nintendo y su consola 3D y al mismo tiempo ahuyentar el fantasma de los teléfonos móviles durante un tiempo. La clave estará en el diseño, los diferentes modos de control y los juegos en desarrollo.
Telltale Games regala el primer episodio de Regreso al Futuro
Bueno, sabemos que la compañía de juegos TellTales está sacando la saga de Regreso al Futuro en episodios descargables. El juego es una especia de aventura gráfica y conversacional, la cual transcurre después de la 3ª película de la saga.
Martín tras destruir la máquina del tiempo lleva una vida normal, cuando de repente vuelve a aparecer delante de él la máquina del tiempo y emprenderá la encrucijada de encontrar al Dr. Brown.
Pues tras la salida del 3º episodio descargable, TellTales ha decidido regalar la 1ª parte de esta aventura gráfica, solamente hay que registrarse en la web y se podrá descargar esta historia totalmente gratis tanto para PC como para MAC.
De esta manera podremos probar esta maravillosa aventura.
Saludos.
Suscribirse a:
Entradas (Atom)

