[Sugar-devel] [DESIGN] SL Bug# 2063 : Sugar should bring up an alert when an unhandled Python exception occurs

Gonzalo Odiard gonzalo at laptop.org
Mon Oct 25 15:25:27 EDT 2010


Probably that is not a good ticket to start to hack in Sugar.
Actually, there are a few python process running all the time,
sugar-session, datastore-service, and in sugar < 0.90,
sugar-presence-service.

Gonzalo

On Mon, Oct 25, 2010 at 3:29 PM, Mukul Gupta <mukul at seeta.in> wrote:

> Bernie,
>
> Wish to have your feedback on the design aspect of the ticket 2063 (Sugar
> should bring up an alert when an unhandled Python exception occurs) - please
> find the git diff attached below. This is an attempt to display an alert
> when an unhandled Python exception occurs in the journal. Unfortunately,
> when the exception takes place in journalactivity.py , I am neither unable
> to notice the Journal Icon (it disappears),
>
> Please find my explanations on the code added as comments.
>
> diff --git a/journalactivity.py b/journalactivity.py
> index 44cc018..36a2e2e 100644
> --- a/journalactivity.py
> +++ b/journalactivity.py
> @@ -358,8 +358,20 @@ class JournalActivity(Window):
>          self.show_main_view()
>          self.search_grab_focus()
>
> ''' Defining an Error Alert function in the Journal Activity Class which
> displays the message as
>
> Operation could not be performed
> Please check the logviewer activity for details
> and an OK button
> '''
>
>
> +    def uncaught_exception_alert(self):
> +        alert = ErrorAlert(title="Operation could not be performed",
> msg="Please check the logviewer activity for details ")
> +    alert.connect('response', self.__alert_response_cb)
> +    self.add_alert(alert)
> +    alert.show()
> +
>  _journal = None
>
> '''
> Defining a function which logs the unhandled exception as well as calls the
> Error Alert in the Journal whenever any uncaught exception occurs
> '''
>
> +def _alert_excepthook(exc_type, exc_value, traceback):
> +    logging.exception('Unhandled Python exception: %s', repr((exc_type,
> exc_value, traceback)))
> +    _journal.uncaught_exception_alert()
> +
> '''
> When an exception is raised and uncaught, sys.excepthook is called with
> three arguments, the exception class, exception instance, and a traceback
> object.The function _alert_excepthook is called only when an unhandled
> exception occurs.
> '''
> +sys.excepthook = _alert_excepthook
> +
>  def get_journal():
>      global _journal
>      if _journal is None:
>
>
> I wish to request you to please review the code and suggest desired
> changes, if any.
>
> Moreover, I have two important questions regarding the bug.
>
> 1. To catch all unhandled python exceptions in sugar, where exactly should
> we be looking forward to be the venue for adding the functionality?
>
>     Adding it in journalactivity.py doesn't seem to serve all purposes. It
> has to be added somewhere which is being used all the time.
>
> 2. Wish if you could recommend on the GUI feature that could be used for
> displaying the alert message to the user.
>
> Looking forward to for your valuable suggestions,
>
>
> Regards,
>
> Mukul Gupta
> Research Engineer,SEETA
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20101025/253e4f4d/attachment.html>


More information about the Sugar-devel mailing list