[Issue 15221] New: Duration should treat division by 0 as a logic error rather than throwing an exception

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun Oct 18 15:39:49 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=15221

          Issue ID: 15221
           Summary: Duration should treat division by 0 as a logic error
                    rather than throwing an exception
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: druntime
          Assignee: nobody at puremagic.com
          Reporter: issues.dlang at jmdavisProg.com

Duration should never have checked for division by 0 and thrown a TimeException
when it occurred. The OS/hardware already checks for that, and it should be
considered a logic error. Checking for it and possibly throwing just slows the
code down and makes it so that it can't be @nogc. 

This is technically a breaking change, but it will only break code which
doesn't bother to avoid dividing by 0 and then catches TimeException when it
occurs, and such code is likely extremely rare, if it exists at all. Given the
fact that the odds of actually breaking code are extremely low and that this
allows us to make Duration fully @nogc except for toString, I think that it's
worth the risk.

--


More information about the Digitalmars-d-bugs mailing list