Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Paquete Ada.Exceptions

Curso de Ada - Paquete Ada.Exceptions

 ****- (10 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
50. Paquete Ada.Exceptions
Ada proporciona información sobre una determinada excepción en un objeto del tipo Exception_Ocurrence, definido dentro del paquete predefinido Ada.Exceptions. junto con otras funciones que toman como parámetro una ocurrencia de excepción.

  • Exception_Name: devuelve el nombre del tipo de la excepción en notación de puntos completa en letra mayúscula, por ejemplo "PILA.ERROR".

  • Exception_Message: devuelve un mensaje de una línea con la causa y la ubicación de la excepción. No contiene el nombre de la excepción.

  • Exception_Information: devuelve una cadena que incluye el nombre de la excepción, la causa y la ubicación y debería proporcionar detalles de la traza de la excepción.

Para comunicar dicha ocurrencia, se emplea la siguiente notación, por ejemplo:

with Ada.Exceptions; use Ada.Exceptions; -- ... exception when Evento: PresiónElevada | TemperaturaElevada => Put ("Excepción: "); Put (Exception_Name(Evento)); New_Line; when Evento: others => Put ("Excepción no prevista: "); Put (Exception_Name(Evento)); New_Line; Put (Exception_Message(Evento)); end;

En ocasiones puede resultar útil almacenar una ocurrencia. Por ejemplo, sería útil crear un registro de las excepciones producidas en la ejecución de un programa almacenándolas en una lista o vector de ocurrencias. Nótese que el tipo Exception_Occurrence es limitado, de modo que no puede ser asignado para ser guardado. Por esta razón Ada.Exceptions proporciona el procedimiento y la función Save_Ocurrence.

El tipo Exception_Id puede entenderse como un tipo enumeración. Toda excepción declarada mediante la palabra reservada exception puede ser considerada como uno de los literales del tipo Exception_Id y, por lo tanto, tiene asociado una identificación, que es el literal correspondiente. Nótese que se refiere ahora a excepciones y a ocurrencias de las mismas. Los literales aludidos serían referencias a Constraint_Error, TemperaturaElevada, etc.; en general, las excepciones predefinidas y las declaradas. Cada una de ellas es en rigor uno de los valores que puede tomar el tipo Exception_Id. El atributo Identity proporciona la identificación de una excepción. Por ejemplo:

declare Fallo_Válvula: exception; Id: Ada.Exceptions.Exception_Id; begin -- ... Id := Fallo_Válvula'Identity; -- ... end;

El programador puede establecer su propio mensaje para una ocurrencia concreta elevándola mediante Raise_Exception en lugar de hacerlo con raise seguido del nombre de la excepción. Por ejemplo:

declare Fallo_Válvula : exception; begin -- ... Raise_Exception (Fallo_Válvula'Identity, "Uno"); -- ... Raise_Exception (Fallo_Válvula'Identity, "Dos"); -- ... exception when Evento: Fallo_Válvula => Put(Exceptions_Message(Evento)); end;

Especificación de Ada.Exceptions


Según el manual de referencia de Ada el paquete Ada.Exceptions debe tener esta especificación:

package Ada.Exceptions is type Exception_Id is private; Null_Id : constant Exception_Id; function Exception_Name(Id : Exception_Id) return String; type Exception_Occurrence is limited private; type Exception_Occurrence_Access is access all Exception_Occurrence; Null_Occurrence : constant Exception_Occurrence; procedure Raise_Exception(E : in Exception_Id; Message : in String := ""); function Exception_Message(X : Exception_Occurrence) return String; procedure Reraise_Occurrence(X : in Exception_Occurrence); function Exception_Identity(X : Exception_Occurrence) return Exception_Id; function Exception_Name(X : Exception_Occurrence) return String; -- Same as Exception_Name(Exception_Identity(X)). function Exception_Information(X : Exception_Occurrence) return String; procedure Save_Occurrence(Target : out Exception_Occurrence; Source : in Exception_Occurrence); function Save_Occurrence(Source : Exception_Occurrence) return Exception_Occurrence_Access; private ... -- not specified by the language end Ada.Exceptions;

Manual de referencia de Ada


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Paquete Ada.Exceptions'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Paquete Ada.Exceptions'

Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una... Más »
Publicidad, término utilizado para referirse a cualquier anuncio destinado al público y cuyo objetivo es... Más »
Gente Wiki
Armando Jerico Gamez Perez
Soy tecnico en laboratorio clinico y egresado en bioquimica en mi pais natal (peru), estoy laburando en un laboratorio particular...
Analisis y diagnóstico, Técnicos de laboratorio,...
Pablo Izquierdo Walker
Ingeniero civil industrial universidad de chile chileno gerente de i-med, empresa de biometría y servicios asp.
Herramientas de marketing, Marketing de bases de datos,...
Laura Narvaez
Analistas de sistemas especializada en artes gráficas, docente por mas de 3 años de las herramientas gráficas en computador, formé...
Danny
Mi nombre es danny tengo 22 años, soy de nacionalidad peruana. Soy profesor de educacion inicial, con licenciatura en educación,...
Tissera Roger
Medico neonatologo realizando una tesis para un magister en salud materno infantil el tema impacto en la salud infantil de...
Alvaro Saavedra Riveros
Soy diseñador industrial de la universidad de valparaiso ,chile. He trabajado en multiples proyectos como tambien en...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?