< 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.
with
Ada.Exceptions;procedure
Numeric_6is
package
Exeptrenames
Ada.Exceptions; ...exception
when
An_Exception :others
=> T_IO.Put_Line (Exept.Exception_Information (An_Exception));end
Try;
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 -- -------------------------------------------------------------------------with
Ada.Streams;package
Ada.Exceptionsis
pragma
Preelaborate (Exceptions);type
Exception_Idis
private
;pragma
Preelaborable_Initialization (Exception_Id); Null_Id :constant
Exception_Id;function
Exception_Name (Id :in
Exception_Id)return
String;function
Wide_Exception_Name (Id :in
Exception_Id)return
Wide_String;function
Wide_Wide_Exception_Name (Id :in
Exception_Id)return
Wide_Wide_String;type
Exception_Occurrenceis
limited
private
;pragma
Preelaborable_Initialization (Exception_Occurrence);type
Exception_Occurrence_Accessis
access
all
Exception_Occurrence; Null_Occurrence :constant
Exception_Occurrence;procedure
Raise_Exception (E :in
Exception_Id; Message :in
String := "");pragma
No_Return (Raise_Exception);function
Exception_Message (X :in
Exception_Occurrence)return
String;procedure
Reraise_Occurrence (X :in
Exception_Occurrence);function
Exception_Identity (X :in
Exception_Occurrence)return
Exception_Id;function
Exception_Name (X :in
Exception_Occurrence)return
String; -- Same as Exception_Name(Exception_Identity(X)).function
Wide_Exception_Name (X :in
Exception_Occurrence)return
Wide_String; -- Same as Wide_Exception_Name(Exception_Identity(X)).function
Wide_Wide_Exception_Name (X :in
Exception_Occurrence)return
Wide_Wide_String; -- Same as Wide_Wide_Exception_Name(Exception_Identity(X)).function
Exception_Information (X :in
Exception_Occurrence)return
String;procedure
Save_Occurrence (Target :out
Exception_Occurrence; Source :in
Exception_Occurrence);function
Save_Occurrence (Source :in
Exception_Occurrence)return
Exception_Occurrence_Access;procedure
Read_Exception_Occurrence (Stream :not
null
access
Ada.Streams.Root_Stream_Type'Class; Item :out
Exception_Occurrence);procedure
Write_Exception_Occurrence (Stream :not
null
access
Ada.Streams.Root_Stream_Type'Class; Item :in
Exception_Occurrence);for
Exception_Occurrence'Readuse
Read_Exception_Occurrence;for
Exception_Occurrence'Writeuse
Write_Exception_Occurrence;private
pragma
Import (Ada, Exception_Id);pragma
Import (Ada, Exception_Occurrence);pragma
Import (Ada, Null_Id);pragma
Import (Ada, Null_Occurrence);end
Ada.Exceptions;
See also
Wikibook
External examples
- Search for examples of
Ada.Exceptions
in: Rosetta Code, GitHub or this Wikibook. - Search for any post related to
Ada.Exceptions
in: 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.