Excepciones e hilos. Acceso a la red - Ejercicios

Documentos relacionados
Ejercicios de tratamiento de errores

Tema 4. Excepciones en Java

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Uso de excepciones en Java

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 5 Corrección y Robustez Excepciones en Java

UD 4 GESTIÓN DE ERRORES. Pedro J. Ponce de León. Versión

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Reconociendo tipos de excepciones comunes

Desarrollo de una aplicación para encriptar información en la transmisión de datos en un aplicativo de mensajería WEB

TEMA 8. Agenda. Excepciones

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

CAPÍTULO 4: EXCEPCIONES EN JAVA

Ejercicios de Hilos. Índice

INF 473 Desarrollo de Aplicaciones en Java

Anexo. Control de errores

Tema 14: Excepciones

Sacar una cuenta de correo electrónico con Gmail

Resumen Manejo de Excepciones

Introducción - por qué usarlas?(1)

Programación Orientada a Objetos. Java: Excepciones

Ejercicio 1. Ejercicio 2

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Programación Orientada a Objetos. Java: Excepciones

Tutorial de incorporación del driver JDBC a Eclipse. Programación en Internet

INTRODUCCION A LA PROGRAMACION EN JAVA

Java: control de excepciones

Práctica 5MODBUS: Bus Modbus

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:

Prof. Dr. Paul Bustamante

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

APLICACIONES MÓVILES NATIVAS. Sesión 8: Arquitectura de las aplicaciones Android

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Sensor Analógico: Potenciómetro

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Gestión de formularios: Manual de usuario

Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda

Ejercicios resueltos de programación

Tutorial Envio de correos con Java Mail

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

TEMA 5. EXCEPCIONES EN JAVA DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS

07 Variables. 7.1 Variables globales Definición

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

PROGRAMACION DISTRIBUIDA

JAVA: Excepciones. Errores

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

MANUAL DE USUARIOS SIMA

FCS03-3 Manual de Usuario ED. 2 MANUAL DE USUARIO

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

Un breve resumen del lenguaje Java

Práctica: Creación de un programa C# sencillo

Manual configuración aplicaciones

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

Redes locales 6. Conrado Perea

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Tratamiento Automatizado de Facturas y Justificantes. Manual de Usuario Servicio a Proveedores

Tema 10: Plataforma Moodle: Primeros Pasos

Cuestionario Empresas Gestoras de Viviendas Turísticas

MANUAL DE USUARIO. Aplicativo móvil para el reporte del producto Espacios Públicos de Juego para niños y niñas de 0 a 5 años

Guía de Calibración del Motic Images Plus 2.0ML & Motic Images Advanced 3.2. Calibración con punto

LAS MACROS. Elaborado por: Diana E. López

Programación en Lenguaje Java

Sistema de Captura Electrónico para Solicitudes de Análisis Agrolab. Manual de Usuario v.2.0

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

FORMACION ONLINE SOROLLA2 UNIDAD DIDACTICA B8

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN.

CGPE Manual de Configuración del Correo Electrónico. Manual para la configuración del correo electrónico en Outlook Express

Manual del Protocolo XML-RPC de Mensajería Negocios

Hospital Clínic de Barcelona. Manual de acceso remoto VPN mediante SSL

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

CÓMO CREAR UNA BASE DE DATOS MySQL PARA PRACTICAR CON PHP. ACCESO AL GESTOR phpmyadmin. (CU00839B)

APUNTES PROII 2º PARCIAL.

Insertar datos en una tabla MySQL en C# WPF

Ejercicios de Programación Tema 7. Programación Orientada a Objetos

Convocatoria C Convocatoria 2017

Práctica 2: Java Remote Method Invocation (RMI)

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Práctica 5: Servidor web concurrente en Java

Thomson ST2022 y ST2030 VoIP Business Phone. Guía rápida de instalación y uso

Transcripción:

Excepciones e hilos. Acceso a la red - Ejercicios Índice 1 Captura de excepciones (*)... 2 2 Lanzamiento de excepciones...2 3 Chat para el móvil... 3

1. Captura de excepciones (*) En el proyecto java-excepciones de las plantillas de la sesión tenemos una aplicación de Java en Ej1.java que toma un número como parámetro, y como salida muestra el logaritmo de dicho número. Sin embargo, en ningún momento comprueba si se ha proporcionado algún parámetro, ni si ese parámetro es un número. Se pide: a) Compilar el programa y ejecutadlo de tres formas distintas: Sin parámetros java Ej1 Poniendo un parámetro no numérico java Ej1 pepe Poniendo un parámetro numérico java Ej1 30 Anotad las excepciones que se lanzan en cada caso (si se lanzan) b) Modificar el código de main para que capture las excepciones producidas y muestre los errores correspondientes en cada caso: Para comprobar si no hay parámetros se capturará una excepción de tipo ArrayIndexOutOfBoundsException (para ver si el array de String que se pasa en el main tiene algún elemento). Para comprobar si el parámetro es numérico, se capturará una excepción de tipo NumberFormatException. Así, tendremos en el main algo como: try { // Tomar parámetro y asignarlo a un double } catch (ArrayIndexOutOfBoundsException e1) { // Codigo a realizar si no hay parametros } catch (NumberFormatException e2) { // Codigo a realizar con parametro no numerico } Probad de nuevo el programa igual que en el caso anterior comprobando que las excepciones son capturadas y tratadas. 2. Lanzamiento de excepciones El fichero Ej2.java es similar al anterior, aunque ahora no vamos a tratar las excepciones del main, sino las del método logaritmo: en la función que calcula el logaritmo se comprueba si el valor introducido es menor o igual que 0, ya que para estos 2

valores la función logaritmo no está definida. Se pide: a) Buscar entre las excepciones de Java la más adecuada para lanzar en este caso, que indique que a un método se le ha pasado un argumento ilegal. (Pista: Buscar entre las clases derivadas de Exception. En este caso la más adecuada se encuentra entre las derivadas de RuntimeException). b) Una vez elegida la excepción adecuada, añadir código (en el método logaritmo) para que en el caso de haber introducido un parámetro incorrecto se lance dicha excepción. throw new... // excepcion elegida Probar el programa para comprobar el efecto que tiene el lanzamiento de la excepción. c) Al no ser una excepción del tipo checked no hará falta que la capturemos ni que declaremos que puede ser lanzada. Vamos a crear nuestro propio tipo de excepción derivada de Exception (de tipo checked) para ser lanzada en caso de introducir un valor no válido como parámetro. La excepción se llamará WrongParameterException y tendrá la siguiente forma: public class WrongParameterException extends Exception { public WrongParameterException(String msg) { super(msg); } } Deberemos lanzarla en lugar de la escogida en el punto anterior. throw new WrongParameterException(...); Intentar compilar el programa y observar los errores que aparecen. Por qué ocurre esto? Añadir los elementos necesarios al código para que compile y probarlo. d) Por el momento controlamos que no se pase un número negativo como entrada. Pero qué ocurre si la entrada no es un número válido? En ese caso se producirá una excepción al convertir el valor de entrada y esa excepción se propagará automáticamente al nivel superior. Ya que tenemos una excepción que indica cuando el parámetro de entrada de nuestra función es incorrecto, sería conveniente que siempre que esto ocurra se lance dicha excepción, independientemente de si ha sido causada por un número negativo o por algo que no es un número, pero siempre conservando la información sobre la causa que produjo el error. Utilizar nested exceptions para realizar esto. Ayuda Deberemos añadir un nuevo constructor a WrongParameterException en el que se proporcione la excepción que causó el error. En la función logaritmo capturaremos cualquier excepción que se produzca al convertir la cadena a número, y lanzaremos una excepción WrongParameterException que incluya la excepción causante. 3

3. Chat para el móvil Vamos a ver como ejemplo una aplicación de chat para el móvil. En el directorio ejemplos de las plantillas de la sesión se encuentra una aplicación web con todos los servlets que necesitaremos para probar los ejemplos. Podremos desplegar esta aplicación en Tomcat para hacer pruebas con nuestro propio servidor. Podemos encontrar la aplicación de chat implementada en el directorio Chat, que realiza las siguientes tareas: Lo primero que se mostrará será una pantalla de login, donde el usuario deberá introducir el login con el que participar en el chat. Deberemos enviar este login al servidor para iniciar la sesión. Para ello abriremos una conexión con la URL del servlet proporcionando los siguientes parámetros:?accion=login&id=<nick_del_usuario> Si el login es correcto, el servidor nos devolverá un código de respuesta 200 OK. Además deberemos leer la cabecera URL-Reescrita, donde nos habrá enviado la URL rescrita que deberemos utilizar de ahora en adelante para mantener la sesión. Una vez hemos entrado en el chat, utilizaremos la técnica de polling para obtener los mensajes escritos en el chat y mostrarlos en la pantalla. Utilizando la URL rescrita, conectaremos al servlet del chat proporcionando el siguiente parámetro:?accion=lista Esto nos devolverá como respuesta una serie de mensajes, codificados mediante un objeto DataOutputStream de la siguiente forma: <nick1> <mensaje1> <nick2> <mensaje2>... <nickn> <mensajen> De esta forma podremos utilizar un objeto DataInputStream para ir leyendo con el método readutf las cadenas del nick y del texto de cada mensaje del chat: String nick = dis.readutf(); String texto = dis.readutf(); Para enviar mensajes al chat utilizaremos el bloque de contenido, conectándonos a la URL rescrita proporcionando el siguiente parámetro:?accion=enviar 4

El mensaje se deberá codificar en binario, escribiendo la cadena del mensaje con el método writeutf de un objeto DataOutputStream. Si obtenemos una respuesta 200 OK el mensaje habrá sido enviado correctamente. 5

6