< Ada Programming < Libraries

Ada. Time-tested, safe and secure.
This language feature is available from Ada 95 on.
Ada.Exceptions is a unit of the Predefined Language Environment since Ada 95.
The package Ada.Exceptions allows you to analyze exceptions you have caught, to raise exceptions with an associated message or to save exceptions occurrences for later processing.
Usage
The following example shows how to implement a "last resort" error handler which just displays the information related to the error which occurred.
withAda.Exceptions;procedureNumeric_6ispackageExeptrenamesAda.Exceptions; ...exceptionwhenAn_Exception :others=> T_IO.Put_Line (Exept.Exception_Information (An_Exception));endTry;
Specification
-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------withAda.Streams;packageAda.ExceptionsispragmaPreelaborate (Exceptions);typeException_Idisprivate;pragmaPreelaborable_Initialization (Exception_Id); Null_Id :constantException_Id;functionException_Name (Id :inException_Id)returnString;functionWide_Exception_Name (Id :inException_Id)returnWide_String;functionWide_Wide_Exception_Name (Id :inException_Id)returnWide_Wide_String;typeException_Occurrenceislimitedprivate;pragmaPreelaborable_Initialization (Exception_Occurrence);typeException_Occurrence_AccessisaccessallException_Occurrence; Null_Occurrence :constantException_Occurrence;procedureRaise_Exception (E :inException_Id; Message :inString := "");pragmaNo_Return (Raise_Exception);functionException_Message (X :inException_Occurrence)returnString;procedureReraise_Occurrence (X :inException_Occurrence);functionException_Identity (X :inException_Occurrence)returnException_Id;functionException_Name (X :inException_Occurrence)returnString; -- Same as Exception_Name(Exception_Identity(X)).functionWide_Exception_Name (X :inException_Occurrence)returnWide_String; -- Same as Wide_Exception_Name(Exception_Identity(X)).functionWide_Wide_Exception_Name (X :inException_Occurrence)returnWide_Wide_String; -- Same as Wide_Wide_Exception_Name(Exception_Identity(X)).functionException_Information (X :inException_Occurrence)returnString;procedureSave_Occurrence (Target :outException_Occurrence; Source :inException_Occurrence);functionSave_Occurrence (Source :inException_Occurrence)returnException_Occurrence_Access;procedureRead_Exception_Occurrence (Stream :notnullaccessAda.Streams.Root_Stream_Type'Class; Item :outException_Occurrence);procedureWrite_Exception_Occurrence (Stream :notnullaccessAda.Streams.Root_Stream_Type'Class; Item :inException_Occurrence);forException_Occurrence'ReaduseRead_Exception_Occurrence;forException_Occurrence'WriteuseWrite_Exception_Occurrence;privatepragmaImport (Ada, Exception_Id);pragmaImport (Ada, Exception_Occurrence);pragmaImport (Ada, Null_Id);pragmaImport (Ada, Null_Occurrence);endAda.Exceptions;
See also
Wikibook
External examples
- Search for examples of
Ada.Exceptionsin: Rosetta Code, GitHub or this Wikibook. - Search for any post related to
Ada.Exceptionsin: Stack Overflow, comp.lang.ada or any Ada related page.
Ada Reference Manual
Ada 95
Ada 2005
Ada 2012
Open-Source Implementations
FSF GNAT
- Specification: a-except.ads
- Body: a-except.adb
drake
- Specification: a-except.ads
- Body: a-except.adb
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.