SlideShare una empresa de Scribd logo
1 de 19
UNIDAD 7. CONCEPTO
AVANZADOS.
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA DEFENSA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL
Docente:
Amado Arcaya
Santa Ana de Coro, Diciembre 2020
Objetivos de aprendizajes
• Objetivo general
Explicar los conceptos avanzados de excepciones y Multithreading.
aplicados en los Lenguajes de Programación.
• Objetivos específicos
o Definir los conceptos avanzados de excepciones y Multithreading.
Aplicados en la POO.
o Describir los características de las excepciones y Multithreading.
o Ejemplificar los diferentes métodos excepciones y Multithreading.
Aplicados en la POO.
Indice
• Introducción al manejo de las excepciones
• Manejo del try, catch y finally
• Manejo de las excepciones
• Multithreading
• Archivos y flujos
INTRODUCCIÓN AL MANEJO DE LAS
EXCEPCIONES
Al principio de la
programación de
computadoras los lenguajes
de programación no proveían
ningún soporte a los
programadores para el
manejo de errores..
Era responsabilidad de los
programadores proveer
rutinas para el manejos
de errores , debido a esto
muchos errores
importantes no eran
detectados en las
aplicaciones.
Los lenguajes posterior
como BASIC y COBOL
proveían un soporte
estructurado para la
revisión y manejo de
errores.
ON ERROR GOTO
Lenguajes de
programación diferentes
proveían sintaxis diferentes
para la detección y manejo
de errores
Aunque el código para el manejo
de errores soportara mejor que
ningún soporte, el código del
programa principal todavía se
intercalaba con el código para la
verificación y manejo de errores
Con la evolución de la
programación orientada a
objetos, se introdujo una nueva
forma de manejar los errores , en
la cual el código para el manejo
de error era separado del código
del problema principal
Excepciones
anormales
Esto es detectado solo en tiempos de
ejecución
Cuando un numero
es dividido entre
cero
Cuando se accede a un
elemento de un arreglo que
esta fuera del limite del
arreglo
Cuando hay una condición
de desborde (overflow o
underflow) durante la
asignación de valores a
variables numéricas
Cuando un recurso que es
requerido por la aplicación
pero no esta disponible por
ejemplo una impresora
Cuando el programa
requiere un archivo para la
lectura y el archivo no esta
disponible en el sistema de
archivos
Cuando un
programa accede a
recursos del
sistema sin
autorización .
Se
produce
el error
El manejador
de
excepciones
recibe la
excepción
Analiza la naturaleza de la
excepción
Crea un “objeto exception”
apropiado a través del
manejador
Preparar el
“objeto
exception” para
ser manejado por
el sistema de
tiempo de
ejecución
El sistema
de tiempo
de ejecución
Localiza en la pila de llamadas la
entrada del método en el cual
ocurrió la condición de error
¿El tipo de
excepción
lanzada es igual
al tipo de
excepción
manejada?
1
2
1
diferente
Igual
Se desciende en la
pila de llamadas
para localizar el
próximo
manejador
¿Hay mas
manejado
res en la
pila?
Detener el
sistema en
tiempo de
ejecución
si
No
2
Localiza el
manejador de
excepciones
apropiado para
esta excepción
Preparar para
capturar la
excepción
Manejo del try, catch y finally
Obtener el N-esimo elemento de una lista de elemento diferentes si este
es un string
Algoritmo
recuperarNEsimoElemento(){
aceptar lista;
obtener n_esimo elemento de la lista;
Retornar el elemento si es un string o retornar
nulo;
}
Se tienen cuatro eventos de revisión de error
que puede proveer la función anterior:
Si la lista es null
Si la lista esta disponible , pero vacía.
Si el valor de ‘N’ no es un índice valido en la
lista.
Si el elemento N no es un string.
String recuperarNEsimoElemnto(List lista, int n){
String str;
if (lista==null)
str=“lista nula”;
Else if (es Vacio(lista))
str=“Lista vacia”;
Else if (n<0 || n>numerodeelementos(lista))
str = “Indice invalido”;
Else{
str = getelemento(lista, n);
if (!esString(str))
str = “No es un String”;
}
return str;
}
Se ha definido el código principal con e código
para el manejo de errores, haciéndolo difícil de
entender.
//Definición de método en Java
String recuperarNEsimoElemento(List lista, int n){
try{
1)obtener n-esimo elemento de la lista
2) Retornar el elemento si es un String o retornar null;
}catch(lista_es_nula){
1)manejo de excepcion cuando la lista es nula;
}catch (lista_esta_vacia){
1)manejo de excepcion cuando la lista esta vacia;
} catch (indice_invalido ){
1)manejo de excepción cuando el índice es invalido;
} catch (elemento_no_es_String ){
1)manejo de excepción cuando eñ elemento a recuperar no
es un String;
}
}
Usando el bloque finally
El bloque finally se ejecuta después
de la ejecución de todos los
bloques catch. El bloque finally
siempre se ejecuta aun cuando se
no se lance ninguna excepción en el
bloque try o aunque los bloque try
–catch tengan una sentencia
return
Try{
//Código que puede generar las excepciones
}catch(chequeoExcepion X1){
//Código para manejo de la excepción
}catch (chequeoExcepcion2 x2) {
//Código para manejo de la excepción
}finally(){
//Código de limpieza;
}
Multithreading o multihilos
es una característica de Java
que permite la ejecución
simultánea de dos o más
partes de un programa para
la máxima utilización de la
CPU
Cada parte de dicho programa se llama hilo.
Entonces, los hilos son procesos livianos dentro de un proceso.
1. Ampliación de la clase de subproceso
2. Implementación de la interfaz ejecutable
Los subprocesos se pueden crear utilizando
Creación de subprocesos ampliando la clase de subproceso
• Creamos una clase que amplía la clase java.lang.Thread.
• Esta clase anula el método run () disponible en la clase Thread.
• Un hilo comienza su vida dentro del método run ().
• Creamos un objeto de nuestra nueva clase y llamamos al método start () para iniciar la
ejecución de un hilo.
• Start () invoca el método run () en el objeto Thread.
Ciclo de vida y estados de un hilo
Un hilo en Java en
cualquier momento
existe en cualquiera de
los siguientes estados.
Sus estado son
Nuevo
Runnable
Obstruido
Esperando
Espera
temporizada
Terminado
Nuevo hilo
•cuando se crea un nuevo hilo, está en el nuevo estado.
•El hilo aún no ha comenzado a ejecutarse cuando el hilo está en este estado
•Cuando un hilo se encuentra en el nuevo estado, su código aún no se ha ejecutado y no ha
comenzado a ejecutarse.
Estado
ejecutable
•un subproceso que está listo para ejecutarse se mueve al estado ejecutable.
•En este estado, un hilo puede estar ejecutándose o puede estar listo para ejecutarse en cualquier momento.
•Es responsabilidad del programador de subprocesos darle tiempo para que se ejecute.
•Un programa de subprocesos múltiples asigna una cantidad fija de tiempo a cada subproceso individual.
•Todos y cada uno de los subprocesos se ejecutan durante un breve período y luego se detienen y ceden la CPU
a otro subproceso, para que otros subprocesos puedan tener la oportunidad de ejecutarse.
•Cuando esto sucede, todos los subprocesos que están listos para ejecutarse, esperando la CPU y el subproceso
que se está ejecutando actualmente, se encuentran en estado ejecutable.
bloqueado
Estado / en
espera
•cuando un hilo está temporalmente inactivo, se encuentra en uno de los siguientes estados:
•Obstruido
•Esperando
Espera
temporizada
•un hilo se encuentra en estado de espera temporizada cuando llama a un método con un
parámetro de tiempo de espera.
•Un hilo permanece en este estado hasta que se completa el tiempo de espera o hasta que se recibe
una notificación.
•Por ejemplo, cuando un subproceso llama a dormir o una espera condicional, se mueve a un estado
de espera temporizada.
Estado
terminado
•un subproceso termina debido a cualquiera de las siguientes razones:
•Porque existe normalmente. Esto sucede cuando el programa ha ejecutado por completo el
código del hilo.
•Porque ocurrió algún evento erróneo inusual, como un error de segmentación o una excepción
no controlada.
Archivos y Flujos
Archivos
Se usan
Para almacenar, leer y
escribir datos
Para hacer eso se
necesita
Acceder a las archivos
del programa
Las clases relativas a
los archivos
trabajan con el
sistema archivos en
la computadora.
asimismo
Flujos
Ayudan en funciones
relativas a archivos en
funciones relativas a
archivos como leer del
archivo , escribir datos al
archivo, leer y escribir
datos sobre la red
Imaginemos
Un flujo como un tubo
donde, es posible leer o
escribir bytes y/o
caracteres. No importa lo
que pueda haber en el otro
extremo del tubo: puede
ser un teclado, monitor, un
archivo, un proceso, una
conexión TCP/IP o un
objeto.
La clase File en JAVA
Son un mecanismo usado para
almacenar información, existen
varias categorías de archivos,
dependiendo del tipo de información
que es almacenada y el sistema de
archivos que se usa depende del
sistema de operación usado en la
computadora
import java.io.File;
/*Definicion de la clase DetalleArchivo comienza aquí*/
public class DetalleArchivo{
/*Metodo main comienza Aqui*/
public void main(String[] args){
File a = new File
("C:UsersC:UsersamadoDocumentsAmadoII-2020programacion
orientada a onjetosclaseunidad7ejemplo.txt“);
if(a.exists()){
System.out.println("*** Datos del archivo***");
System.out.println("Nombre: " + a.getname());
System.out.println("Ruta completa: " + a.getPath());
System.out.println("Directorio Padre: " + a.getParent());
System.out.println("Tamaño (en Bytes): " + a.length());
}else{
System.out.println(
"Archivo: " +
a.getName() +
"no existe");
}
}/*Metodo main termina aqui*/
}/*Definicion de la clase DetalleArchivo termina aqui*/
Flujos
En java toda la información
independientemente de la fuente o el
destino, como flujo. Los datos que son
leídos y escritos en un programa java son
tratados como un flujo de datos, bytes son
leídos o escritos a archivos, conectores o
conexiones en internet.
Un flujo es
Es cualquier cosa ruta de
información desde la fuente
al destino.
Los siguientes son
algunos pares de
fuentes y destinos:
• Un teclado (Fuente) y un monitor (destino).
• Una pagina de texto en un monitor (fuente) y un archivo en un disco duro (destino).
• Un archivo en un disco duro (fuente) y un monitor (destino).
• Un servidor web (fuente) y un navegador (destino).
• Un teclado (fuente) y una cadena de caracteres (destino).
• Un archivo de texto (fuente) y una impresora (destino).
Los flujo en java están organizados y se clasifican en los siguientes dos grupos
Flujos de
byte
Flujos de
carácter
Los flujos de byte se usan para transferir 8-bits
de datos, son representados con las clases.
InputStream
OutputStream
Los flujos de caracteres trabajan con caracteres de 16 bits
son representados con las clases
Reader
Writer
Python
Para abrir archivo f = open("archivo.txt", "w")
Para escribir en un archivo f.write("Esto es un texto.")
Para cerrar el archivo f.close()
Para hacer una llamada
retornar una cadena
f.read()
print(f.readline())
posicionarse en un
determinado lugar del fichero
file.seek()
f.seek(30)
print(f.read())
Funciones stdio de ANSI equivalentes en la API de Flujos
Función Stdio de ANSI
C++
Función de Flujos de PHP Notas
fopen php_stream_open_wrapper Los Flujos incluyen parámetros adicionales
fclose php_stream_close
fgets php_stream_gets
fread php_stream_read El parámetro nmemb se asume que tiene un
valor de 1, por lo que el prototipo se parece
más a read(2)
fwrite php_stream_write El parámetro nmemb se asume que tiene un
valor de 1, por lo que el prototipo se parece
más a write(2)
fseek php_stream_seek
ftell php_stream_tell
rewind php_stream_rewind
feof php_stream_eof
fgetc php_stream_getc
fputc php_stream_putc
fflush php_stream_flush
puts php_stream_puts La misma semántica que puts, NO fputs
fstat php_stream_stat Los flujos tienen una estructura de estadísticas
más abundante
MUCHAS GRACIA
POR SU ATENCIÓN
MUCHAS GRACIA
POR SU ATENCIÓN

Más contenido relacionado

La actualidad más candente

Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc X
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
Jyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzadoJyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzadoJyoc X
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018Eudris Cabrera
 
Multitarea e hilos en java
Multitarea e hilos en javaMultitarea e hilos en java
Multitarea e hilos en javaTensor
 
5. otros aspectos de la programación orientada a objetos
5. otros aspectos de la programación orientada a objetos5. otros aspectos de la programación orientada a objetos
5. otros aspectos de la programación orientada a objetosHectorMamani
 

La actualidad más candente (14)

LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Jyoc java-cap23 j unit
Jyoc java-cap23 j unitJyoc java-cap23 j unit
Jyoc java-cap23 j unit
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Jyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzadoJyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzado
 
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018Java fundamentos   15 consejos prácticos - ITLA Tech Day 2018
Java fundamentos 15 consejos prácticos - ITLA Tech Day 2018
 
Kelly
KellyKelly
Kelly
 
Errores
ErroresErrores
Errores
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Java Threads (Hilos en Java)
Java Threads (Hilos en Java)Java Threads (Hilos en Java)
Java Threads (Hilos en Java)
 
Threads en Java
Threads en JavaThreads en Java
Threads en Java
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Programación III (Java) - 08 threads
Programación III (Java) - 08 threadsProgramación III (Java) - 08 threads
Programación III (Java) - 08 threads
 
Multitarea e hilos en java
Multitarea e hilos en javaMultitarea e hilos en java
Multitarea e hilos en java
 
5. otros aspectos de la programación orientada a objetos
5. otros aspectos de la programación orientada a objetos5. otros aspectos de la programación orientada a objetos
5. otros aspectos de la programación orientada a objetos
 

Similar a Excepciones Multithreading Archivos

Similar a Excepciones Multithreading Archivos (20)

Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
Clase 5
Clase 5Clase 5
Clase 5
 
Examen 2 s,o,
Examen 2 s,o,Examen 2 s,o,
Examen 2 s,o,
 
Subprocesamiento Mùltiple
Subprocesamiento MùltipleSubprocesamiento Mùltiple
Subprocesamiento Mùltiple
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
Conceptos estructuras de datos
Conceptos estructuras de datosConceptos estructuras de datos
Conceptos estructuras de datos
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
programacion concurrente java.pptx
programacion concurrente java.pptxprogramacion concurrente java.pptx
programacion concurrente java.pptx
 
Ethical hacking 02
Ethical hacking 02Ethical hacking 02
Ethical hacking 02
 
Información básica Java
Información básica JavaInformación básica Java
Información básica Java
 
Unidad2
Unidad2Unidad2
Unidad2
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Las funciones de los sistemas operativos
Las funciones de los sistemas operativosLas funciones de los sistemas operativos
Las funciones de los sistemas operativos
 
Presentación1
Presentación1Presentación1
Presentación1
 
DIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdfDIAPOSITIVAS UNIDAD3.pdf
DIAPOSITIVAS UNIDAD3.pdf
 
Lab5 guia
Lab5 guiaLab5 guia
Lab5 guia
 

Más de Amado Arcaya

Unidad 8 Programacion avanzada orientada a objetos
Unidad 8 Programacion avanzada orientada a objetosUnidad 8 Programacion avanzada orientada a objetos
Unidad 8 Programacion avanzada orientada a objetosAmado Arcaya
 
Estructuras de Datos Estaticos [Matrices]
Estructuras de Datos Estaticos [Matrices]Estructuras de Datos Estaticos [Matrices]
Estructuras de Datos Estaticos [Matrices]Amado Arcaya
 
Estructura de datos Estaticos [Vectores]
Estructura de datos Estaticos [Vectores]Estructura de datos Estaticos [Vectores]
Estructura de datos Estaticos [Vectores]Amado Arcaya
 
Unidad 4: herencia y extensiones
Unidad 4: herencia y extensionesUnidad 4: herencia y extensiones
Unidad 4: herencia y extensionesAmado Arcaya
 
Unidad 4 polimorfismo y herencia
Unidad 4 polimorfismo y herenciaUnidad 4 polimorfismo y herencia
Unidad 4 polimorfismo y herenciaAmado Arcaya
 
Introduccion a los diagramas de flujo de datos
Introduccion a los diagramas de flujo de datosIntroduccion a los diagramas de flujo de datos
Introduccion a los diagramas de flujo de datosAmado Arcaya
 
Estructuras de control en la POO
Estructuras de control en la POOEstructuras de control en la POO
Estructuras de control en la POOAmado Arcaya
 
Introduccion a los diagramas de flujo de procesos
Introduccion a los diagramas de flujo de procesosIntroduccion a los diagramas de flujo de procesos
Introduccion a los diagramas de flujo de procesosAmado Arcaya
 
la estruturas de la programacion basicas de las POO
la estruturas de la programacion basicas de las POOla estruturas de la programacion basicas de las POO
la estruturas de la programacion basicas de las POOAmado Arcaya
 
las Clases y los Objetos en la poo
las Clases y los Objetos en la poolas Clases y los Objetos en la poo
las Clases y los Objetos en la pooAmado Arcaya
 
Estructura de la programacion orientada a objetos
Estructura de la programacion orientada a objetosEstructura de la programacion orientada a objetos
Estructura de la programacion orientada a objetosAmado Arcaya
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacionAmado Arcaya
 
1clasesdeprogramacion
1clasesdeprogramacion1clasesdeprogramacion
1clasesdeprogramacionAmado Arcaya
 
Analisis de sistemas de informacion
Analisis de sistemas de informacionAnalisis de sistemas de informacion
Analisis de sistemas de informacionAmado Arcaya
 
Tipos de bases de datos no sql
Tipos de bases de datos no sqlTipos de bases de datos no sql
Tipos de bases de datos no sqlAmado Arcaya
 
Bases dedatos relacionales
Bases dedatos relacionalesBases dedatos relacionales
Bases dedatos relacionalesAmado Arcaya
 
Principios de sistemas de informacion2020
Principios de sistemas de informacion2020Principios de sistemas de informacion2020
Principios de sistemas de informacion2020Amado Arcaya
 
Princpios de sistema de informacion parte 2
Princpios de sistema de informacion parte 2Princpios de sistema de informacion parte 2
Princpios de sistema de informacion parte 2Amado Arcaya
 

Más de Amado Arcaya (20)

Unidad 8 Programacion avanzada orientada a objetos
Unidad 8 Programacion avanzada orientada a objetosUnidad 8 Programacion avanzada orientada a objetos
Unidad 8 Programacion avanzada orientada a objetos
 
Estructuras de Datos Estaticos [Matrices]
Estructuras de Datos Estaticos [Matrices]Estructuras de Datos Estaticos [Matrices]
Estructuras de Datos Estaticos [Matrices]
 
Estructura de datos Estaticos [Vectores]
Estructura de datos Estaticos [Vectores]Estructura de datos Estaticos [Vectores]
Estructura de datos Estaticos [Vectores]
 
Unidad 4: herencia y extensiones
Unidad 4: herencia y extensionesUnidad 4: herencia y extensiones
Unidad 4: herencia y extensiones
 
Unidad 4 polimorfismo y herencia
Unidad 4 polimorfismo y herenciaUnidad 4 polimorfismo y herencia
Unidad 4 polimorfismo y herencia
 
Introduccion a los diagramas de flujo de datos
Introduccion a los diagramas de flujo de datosIntroduccion a los diagramas de flujo de datos
Introduccion a los diagramas de flujo de datos
 
Estructuras de control en la POO
Estructuras de control en la POOEstructuras de control en la POO
Estructuras de control en la POO
 
Introduccion a los diagramas de flujo de procesos
Introduccion a los diagramas de flujo de procesosIntroduccion a los diagramas de flujo de procesos
Introduccion a los diagramas de flujo de procesos
 
la estruturas de la programacion basicas de las POO
la estruturas de la programacion basicas de las POOla estruturas de la programacion basicas de las POO
la estruturas de la programacion basicas de las POO
 
las Clases y los Objetos en la poo
las Clases y los Objetos en la poolas Clases y los Objetos en la poo
las Clases y los Objetos en la poo
 
Estructura de la programacion orientada a objetos
Estructura de la programacion orientada a objetosEstructura de la programacion orientada a objetos
Estructura de la programacion orientada a objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
1clasesdeprogramacion
1clasesdeprogramacion1clasesdeprogramacion
1clasesdeprogramacion
 
Analisis de sistemas de informacion
Analisis de sistemas de informacionAnalisis de sistemas de informacion
Analisis de sistemas de informacion
 
Tipos de bases de datos no sql
Tipos de bases de datos no sqlTipos de bases de datos no sql
Tipos de bases de datos no sql
 
Bases dedatos relacionales
Bases dedatos relacionalesBases dedatos relacionales
Bases dedatos relacionales
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Principios de sistemas de informacion2020
Principios de sistemas de informacion2020Principios de sistemas de informacion2020
Principios de sistemas de informacion2020
 
Princpios de sistema de informacion parte 2
Princpios de sistema de informacion parte 2Princpios de sistema de informacion parte 2
Princpios de sistema de informacion parte 2
 
Mapa mentalamado
Mapa mentalamadoMapa mentalamado
Mapa mentalamado
 

Último

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 

Último (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 

Excepciones Multithreading Archivos

  • 1. UNIDAD 7. CONCEPTO AVANZADOS. REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL Docente: Amado Arcaya Santa Ana de Coro, Diciembre 2020
  • 2. Objetivos de aprendizajes • Objetivo general Explicar los conceptos avanzados de excepciones y Multithreading. aplicados en los Lenguajes de Programación. • Objetivos específicos o Definir los conceptos avanzados de excepciones y Multithreading. Aplicados en la POO. o Describir los características de las excepciones y Multithreading. o Ejemplificar los diferentes métodos excepciones y Multithreading. Aplicados en la POO.
  • 3. Indice • Introducción al manejo de las excepciones • Manejo del try, catch y finally • Manejo de las excepciones • Multithreading • Archivos y flujos
  • 4. INTRODUCCIÓN AL MANEJO DE LAS EXCEPCIONES Al principio de la programación de computadoras los lenguajes de programación no proveían ningún soporte a los programadores para el manejo de errores.. Era responsabilidad de los programadores proveer rutinas para el manejos de errores , debido a esto muchos errores importantes no eran detectados en las aplicaciones. Los lenguajes posterior como BASIC y COBOL proveían un soporte estructurado para la revisión y manejo de errores. ON ERROR GOTO Lenguajes de programación diferentes proveían sintaxis diferentes para la detección y manejo de errores Aunque el código para el manejo de errores soportara mejor que ningún soporte, el código del programa principal todavía se intercalaba con el código para la verificación y manejo de errores Con la evolución de la programación orientada a objetos, se introdujo una nueva forma de manejar los errores , en la cual el código para el manejo de error era separado del código del problema principal
  • 5. Excepciones anormales Esto es detectado solo en tiempos de ejecución Cuando un numero es dividido entre cero Cuando se accede a un elemento de un arreglo que esta fuera del limite del arreglo Cuando hay una condición de desborde (overflow o underflow) durante la asignación de valores a variables numéricas Cuando un recurso que es requerido por la aplicación pero no esta disponible por ejemplo una impresora Cuando el programa requiere un archivo para la lectura y el archivo no esta disponible en el sistema de archivos Cuando un programa accede a recursos del sistema sin autorización .
  • 6. Se produce el error El manejador de excepciones recibe la excepción Analiza la naturaleza de la excepción Crea un “objeto exception” apropiado a través del manejador Preparar el “objeto exception” para ser manejado por el sistema de tiempo de ejecución El sistema de tiempo de ejecución Localiza en la pila de llamadas la entrada del método en el cual ocurrió la condición de error ¿El tipo de excepción lanzada es igual al tipo de excepción manejada? 1 2 1 diferente Igual Se desciende en la pila de llamadas para localizar el próximo manejador ¿Hay mas manejado res en la pila? Detener el sistema en tiempo de ejecución si No 2 Localiza el manejador de excepciones apropiado para esta excepción Preparar para capturar la excepción
  • 7. Manejo del try, catch y finally Obtener el N-esimo elemento de una lista de elemento diferentes si este es un string Algoritmo recuperarNEsimoElemento(){ aceptar lista; obtener n_esimo elemento de la lista; Retornar el elemento si es un string o retornar nulo; } Se tienen cuatro eventos de revisión de error que puede proveer la función anterior: Si la lista es null Si la lista esta disponible , pero vacía. Si el valor de ‘N’ no es un índice valido en la lista. Si el elemento N no es un string. String recuperarNEsimoElemnto(List lista, int n){ String str; if (lista==null) str=“lista nula”; Else if (es Vacio(lista)) str=“Lista vacia”; Else if (n<0 || n>numerodeelementos(lista)) str = “Indice invalido”; Else{ str = getelemento(lista, n); if (!esString(str)) str = “No es un String”; } return str; } Se ha definido el código principal con e código para el manejo de errores, haciéndolo difícil de entender. //Definición de método en Java String recuperarNEsimoElemento(List lista, int n){ try{ 1)obtener n-esimo elemento de la lista 2) Retornar el elemento si es un String o retornar null; }catch(lista_es_nula){ 1)manejo de excepcion cuando la lista es nula; }catch (lista_esta_vacia){ 1)manejo de excepcion cuando la lista esta vacia; } catch (indice_invalido ){ 1)manejo de excepción cuando el índice es invalido; } catch (elemento_no_es_String ){ 1)manejo de excepción cuando eñ elemento a recuperar no es un String; } }
  • 8. Usando el bloque finally El bloque finally se ejecuta después de la ejecución de todos los bloques catch. El bloque finally siempre se ejecuta aun cuando se no se lance ninguna excepción en el bloque try o aunque los bloque try –catch tengan una sentencia return Try{ //Código que puede generar las excepciones }catch(chequeoExcepion X1){ //Código para manejo de la excepción }catch (chequeoExcepcion2 x2) { //Código para manejo de la excepción }finally(){ //Código de limpieza; }
  • 9. Multithreading o multihilos es una característica de Java que permite la ejecución simultánea de dos o más partes de un programa para la máxima utilización de la CPU Cada parte de dicho programa se llama hilo. Entonces, los hilos son procesos livianos dentro de un proceso. 1. Ampliación de la clase de subproceso 2. Implementación de la interfaz ejecutable Los subprocesos se pueden crear utilizando Creación de subprocesos ampliando la clase de subproceso • Creamos una clase que amplía la clase java.lang.Thread. • Esta clase anula el método run () disponible en la clase Thread. • Un hilo comienza su vida dentro del método run (). • Creamos un objeto de nuestra nueva clase y llamamos al método start () para iniciar la ejecución de un hilo. • Start () invoca el método run () en el objeto Thread.
  • 10. Ciclo de vida y estados de un hilo Un hilo en Java en cualquier momento existe en cualquiera de los siguientes estados. Sus estado son Nuevo Runnable Obstruido Esperando Espera temporizada Terminado
  • 11. Nuevo hilo •cuando se crea un nuevo hilo, está en el nuevo estado. •El hilo aún no ha comenzado a ejecutarse cuando el hilo está en este estado •Cuando un hilo se encuentra en el nuevo estado, su código aún no se ha ejecutado y no ha comenzado a ejecutarse. Estado ejecutable •un subproceso que está listo para ejecutarse se mueve al estado ejecutable. •En este estado, un hilo puede estar ejecutándose o puede estar listo para ejecutarse en cualquier momento. •Es responsabilidad del programador de subprocesos darle tiempo para que se ejecute. •Un programa de subprocesos múltiples asigna una cantidad fija de tiempo a cada subproceso individual. •Todos y cada uno de los subprocesos se ejecutan durante un breve período y luego se detienen y ceden la CPU a otro subproceso, para que otros subprocesos puedan tener la oportunidad de ejecutarse. •Cuando esto sucede, todos los subprocesos que están listos para ejecutarse, esperando la CPU y el subproceso que se está ejecutando actualmente, se encuentran en estado ejecutable. bloqueado Estado / en espera •cuando un hilo está temporalmente inactivo, se encuentra en uno de los siguientes estados: •Obstruido •Esperando Espera temporizada •un hilo se encuentra en estado de espera temporizada cuando llama a un método con un parámetro de tiempo de espera. •Un hilo permanece en este estado hasta que se completa el tiempo de espera o hasta que se recibe una notificación. •Por ejemplo, cuando un subproceso llama a dormir o una espera condicional, se mueve a un estado de espera temporizada. Estado terminado •un subproceso termina debido a cualquiera de las siguientes razones: •Porque existe normalmente. Esto sucede cuando el programa ha ejecutado por completo el código del hilo. •Porque ocurrió algún evento erróneo inusual, como un error de segmentación o una excepción no controlada.
  • 12. Archivos y Flujos Archivos Se usan Para almacenar, leer y escribir datos Para hacer eso se necesita Acceder a las archivos del programa Las clases relativas a los archivos trabajan con el sistema archivos en la computadora. asimismo Flujos Ayudan en funciones relativas a archivos en funciones relativas a archivos como leer del archivo , escribir datos al archivo, leer y escribir datos sobre la red Imaginemos Un flujo como un tubo donde, es posible leer o escribir bytes y/o caracteres. No importa lo que pueda haber en el otro extremo del tubo: puede ser un teclado, monitor, un archivo, un proceso, una conexión TCP/IP o un objeto.
  • 13. La clase File en JAVA Son un mecanismo usado para almacenar información, existen varias categorías de archivos, dependiendo del tipo de información que es almacenada y el sistema de archivos que se usa depende del sistema de operación usado en la computadora import java.io.File; /*Definicion de la clase DetalleArchivo comienza aquí*/ public class DetalleArchivo{ /*Metodo main comienza Aqui*/ public void main(String[] args){ File a = new File ("C:UsersC:UsersamadoDocumentsAmadoII-2020programacion orientada a onjetosclaseunidad7ejemplo.txt“); if(a.exists()){ System.out.println("*** Datos del archivo***"); System.out.println("Nombre: " + a.getname()); System.out.println("Ruta completa: " + a.getPath()); System.out.println("Directorio Padre: " + a.getParent()); System.out.println("Tamaño (en Bytes): " + a.length()); }else{ System.out.println( "Archivo: " + a.getName() + "no existe"); } }/*Metodo main termina aqui*/ }/*Definicion de la clase DetalleArchivo termina aqui*/
  • 14. Flujos En java toda la información independientemente de la fuente o el destino, como flujo. Los datos que son leídos y escritos en un programa java son tratados como un flujo de datos, bytes son leídos o escritos a archivos, conectores o conexiones en internet. Un flujo es Es cualquier cosa ruta de información desde la fuente al destino. Los siguientes son algunos pares de fuentes y destinos: • Un teclado (Fuente) y un monitor (destino). • Una pagina de texto en un monitor (fuente) y un archivo en un disco duro (destino). • Un archivo en un disco duro (fuente) y un monitor (destino). • Un servidor web (fuente) y un navegador (destino). • Un teclado (fuente) y una cadena de caracteres (destino). • Un archivo de texto (fuente) y una impresora (destino).
  • 15. Los flujo en java están organizados y se clasifican en los siguientes dos grupos Flujos de byte Flujos de carácter Los flujos de byte se usan para transferir 8-bits de datos, son representados con las clases. InputStream OutputStream Los flujos de caracteres trabajan con caracteres de 16 bits son representados con las clases Reader Writer
  • 16. Python Para abrir archivo f = open("archivo.txt", "w") Para escribir en un archivo f.write("Esto es un texto.") Para cerrar el archivo f.close() Para hacer una llamada retornar una cadena f.read() print(f.readline()) posicionarse en un determinado lugar del fichero file.seek() f.seek(30) print(f.read())
  • 17. Funciones stdio de ANSI equivalentes en la API de Flujos Función Stdio de ANSI C++ Función de Flujos de PHP Notas fopen php_stream_open_wrapper Los Flujos incluyen parámetros adicionales fclose php_stream_close fgets php_stream_gets fread php_stream_read El parámetro nmemb se asume que tiene un valor de 1, por lo que el prototipo se parece más a read(2) fwrite php_stream_write El parámetro nmemb se asume que tiene un valor de 1, por lo que el prototipo se parece más a write(2) fseek php_stream_seek ftell php_stream_tell rewind php_stream_rewind feof php_stream_eof fgetc php_stream_getc fputc php_stream_putc fflush php_stream_flush puts php_stream_puts La misma semántica que puts, NO fputs fstat php_stream_stat Los flujos tienen una estructura de estadísticas más abundante
  • 18. MUCHAS GRACIA POR SU ATENCIÓN
  • 19. MUCHAS GRACIA POR SU ATENCIÓN