[phobos] enforce() improvement

Steve Schveighoffer schveiguy at yahoo.com
Thu Jul 1 07:00:48 PDT 2010


I disagree.  The "user" in this case, is the user of the library code.  He does in fact need to know the file/line that caused the problem, and more useful would be the full stack trace so he can see where his code used the offending value.

If you are relying on enforce to give insightful error messages to an actual user (that is, someone who runs your program), then you need some training in user interface design :)

-Steve



----- Original Message ----
> From: Lars Tandle Kyllingstad <lars at kyllingen.net>
> To: Phobos mailing list <phobos at puremagic.com>
> Sent: Thu, July 1, 2010 9:50:15 AM
> Subject: [phobos] enforce() improvement
> 
> Often, at least in small programs, when an exception is thrown you just
want 
> to present a sensible message to the user and abort the 
> current
operation.  Example:

        void 
> doStuff(int i) { enforce(i >= 0, "Need nonnegative i"); }

  
>       try doStuff(-1);
        catch 
> (Exception e) writeln("Error: ", e.msg);

In this case, the user will 
> see

        Error: b.d(5): Need nonnegative 
> i

My point is that the user doesn't need to see the file and line 
> number
that caused the error.  This is only useful for the 
> programmer.  So I
suggest we make either of the following changes to 
> enforce():

     1. Drop the file and line number from the 
> message.  The Throwable
        class has dedicated 
> 'file' and 'line' fields which we can
        populate 
> with that information without polluting the error
        
> message.
     2. Another option is to include the file and line 
> only in debug
        builds.

-Lars 
> 


_______________________________________________
phobos mailing 
> list

> href="mailto:phobos at puremagic.com">phobos at puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos


      


More information about the phobos mailing list