DIP33: A standard exception hierarchy

Jonathan M Davis jmdavisProg at gmx.com
Tue Apr 2 11:26:19 PDT 2013


On Tuesday, April 02, 2013 22:16:30 Dmitry Olshansky wrote:
> 02-Apr-2013 21:48, Walter Bright пишет:
> > On 4/2/2013 4:59 AM, Dmitry Olshansky wrote:
> >> If somebody comes up with a reasonable Visitor pattern for Exceptions
> >> that is
> >> flexible and fast then sure let's see it.
> > 
> > It doesn't really need to be fast. If you need performance out of
> > Exceptions, you're misusing the idiom.
> 
> The exceptions are slowish but that hardly justifies adding an extra
> amount of overhead on top of that. This might as well push people to
> avoid them even where it makes perfect sense to use exceptions.
> 
> That being said let's see that beast and then measure, then optimize and
> then judge it.

D's exceptions are ridiculously slow ( 
http://d.puremagic.com/issues/show_bug.cgi?id=9584 ). Granted, in general, you 
shouldn't be relying on exceptions being efficient (they _are_ the error code 
path after all), but we really should do better than we're currently doing, 
and adding extra overhead obviously wouldn't help.

The main area that I find exception speed to be a real problem is in unit 
testing. Solid unit tests will test error conditions, which generally means 
using assertThrown to verify that the correct exception was thrown for bad 
input, but with how slow D's exceptions are, it becomes _very_ expensive to do 
many tests like that, which is very frustrating when you're trying to do 
thorough unit tests.

- Jonathan M Davis


More information about the Digitalmars-d mailing list