Oh, I see. Well, ignore my last message then -- I sent it before I read this one. :)
-Lars On Thu, 2010-07-01 at 11:19 -0700, Steve Schveighoffer wrote: > I re-read this thread. I understand now that you don't want to remove that > information, just not print it via msg? Sorry for the opposition. I agree > that the message shouldn't contain redundant info. > > As long as the default handler prints the information out, I'm ok with that. > Having as much information as possible when something goes unexpectedly wrong > is the best case scenario for a developer. > > -Steve > > > > ----- Original Message ---- > > From: Lars Tandle Kyllingstad <[email protected]> > > To: Discuss the phobos library for D <[email protected]> > > Sent: Thu, July 1, 2010 2:06:45 PM > > Subject: Re: [phobos] enforce() improvement > > > > There is no need to add anything, Throwable already has this structure. > That > > was the main point behind my proposal: enforce() puts the > information > > in the wrong place. > > I'll look into it. > > -Lars > > > > On > > Thu, 2010-07-01 at 10:47 -0700, Andrei Alexandrescu wrote: > > I think it > > would be a good improvement to add such structure to > > exceptions. So > > toString() would continue to print essentially the same > > message, but it > > would assemble it from the separately-available > > properties file, line, > > and reason. > > > > Go for it, or submit a ticket so it's not > > forgotten. > > > > Andrei > > > > Lars Tandle Kyllingstad > > wrote: > > > The library user would still get the information, > > because > > > Throwable.toString() would still give the file and line > > number, and like > > > I said, Throwable.file and Throwable.line are > > supposed to be filled with > > > that information. My point was > > that enforce() puts the information in > > > Throwable.msg, which I find > > completely redundant. > > > > > > Also, if you are using plain > > enforce() for error checking (like Phobos > > > does in a lot of places), > > Throwable.msg is your only source of > > > information to pass to the > > user, since enforce() by default throws an > > > Exception and not an > > InsightfulInformationException. > > > > > > -Lars > > > > > > > > > > > > > > On Thu, 2010-07-01 at 07:00 -0700, > > Steve Schveighoffer wrote: > > >> 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 < > > ymailto="mailto:[email protected]" > > href="mailto:[email protected]">[email protected]> > > >>> > > To: Phobos mailing list < > > href="mailto:[email protected]">[email protected]> > > > > >>> 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: > > ymailto="mailto:[email protected]" > > href="mailto:[email protected]">[email protected]"> > > ymailto="mailto:[email protected]" > > href="mailto:[email protected]">[email protected] > > >> > > http://lists.puremagic.com/mailman/listinfo/phobos > > >> > > > > >> > > >> > > >> > > _______________________________________________ > > >> phobos mailing > > list > > >> > > href="mailto:[email protected]">[email protected] > > >> > > href="http://lists.puremagic.com/mailman/listinfo/phobos" target=_blank > > >http://lists.puremagic.com/mailman/listinfo/phobos > > > > > > > > > > > _______________________________________________ > > > > > phobos mailing list > > > > > href="mailto:[email protected]">[email protected] > > > > > href="http://lists.puremagic.com/mailman/listinfo/phobos" target=_blank > > >http://lists.puremagic.com/mailman/listinfo/phobos > > > > _______________________________________________ > > phobos mailing > > list > > > > href="mailto:[email protected]">[email protected] > > > > href="http://lists.puremagic.com/mailman/listinfo/phobos" target=_blank > > >http://lists.puremagic.com/mailman/listinfo/phobos > > > _______________________________________________ > phobos > > mailing list > > > href="mailto:[email protected]">[email protected] > > > href="http://lists.puremagic.com/mailman/listinfo/phobos" target=_blank > > >http://lists.puremagic.com/mailman/listinfo/phobos > > > > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
