Re: About gsettings aborting on unkown schemas
- From: Shaun McCance <shaunm gnome org>
- To: gtk-devel-list gnome org
- Subject: Re: About gsettings aborting on unkown schemas
- Date: Mon, 30 May 2011 20:37:03 -0400
On Fri, 2011-05-27 at 17:09 -0400, Havoc Pennington wrote:
> Hi,
>
> Man, how many times has this thread happened? At least fifty.
>
> On Fri, May 27, 2011 at 10:57 AM, Shaun McCance <shaunm gnome org> wrote:
> > try:
> > load_some_extension()
> > except:
> > warn("This extension sucks. I'm disabling it and moving on.")
> >
> > Of course, GLib is C. We don't have exceptions. We have GError,
> > which is a decent foundation for exceptions in language bindings.
> > But if we don't use it, then languages that could otherwise do
> > the right thing are screwed.
>
> This is the core thing. People who expect no g_error/abort are used to
> languages with exceptions.
>
> The thing that's different about C is that an "exception" (think
> GError) changes the function signature of that function... _and_ *all
> callers* in any library or app!
I really don't want to carry this thread much further. It
is getting bike-sheddy. We disagree. I'm not the one making
the decisions. Life goes on.
But I want to point out that my point was never that GLib
should behave like a language with exceptions. Just that
it should let bindings in those languages behave like they
should.
What I would do (take it or leave it, and let's move on with
our lives) is make the constructor return NULL if there's a
problem and make all consumers of GSettings abort if passed
NULL. Same effect, just perhaps delayed. I don't think it
risks any more data loss than the current behavior.
The advantage is that bindings could do a NULL check and
raise an exception. With introspection-based bindings, this
kind of NULL-check-and-raise can even be done automatically,
perhaps with a flag like raise-on-null.
--
Shaun
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]