comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Exception Handling within Gtkada
Date: Tue, 21 Sep 2021 09:01:35 +0200	[thread overview]
Message-ID: <sic00e$1q61$1@gioia.aioe.org> (raw)
In-Reply-To: 27364e05-ceac-49de-b6b4-954609d00543n@googlegroups.com

On 2021-09-21 08:49, Vadim Godunko wrote:
> On Monday, September 20, 2021 at 3:06:02 PM UTC+3, ldries46 wrote:
>> I want an exception to be seen within an existing window of Gtkada to be able to see details of the error. So I used:
>>
>> exception
>> when no_const =>
>> Main_Window.Buffer.Insert_At_Cursor
>> ("-------------------------------------------------------------------------"
>> & To_String(CRLF));
>> Main_Window.Buffer.Insert_At_Cursor("Error : io_const" & to_String(CRLF));
>> end Test_Exception;
>>
>> In this case the the program ends and the reason of the exception is lost. I want this only for a selected nr of exceptions. In this case the exception no_const.
> 
> Generally, Ada exceptions must not left scope of callback function. Thus, such code should be added to each callback/event handler/etc. subprogram of your application.

Right. Each handler should end like this:

    exception
       when Error : others =>
          Glib.Message.Log
          (  "My fancy program",
             Log_Level_Critical,
             (  "Fault in On_Button_Click: "
             &  Exception_Information (Error)
          )  );
    end On_Button_Click;

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2021-09-21  7:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <nnd$672ea4c3$361caa01@549d065034cf3e10>
2021-09-21  6:49 ` Exception Handling within Gtkada Vadim Godunko
2021-09-21  7:01   ` Dmitry A. Kazakov [this message]
2021-09-21  7:24     ` Emmanuel Briot
2021-09-21  7:40       ` Dmitry A. Kazakov
2021-09-22  8:42     ` ldries46
2021-09-22 10:22       ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox