Bug 8571 – Defined exception for unequal zip lengths with StoppingPolicy.requireSameLength

Status
NEW
Severity
enhancement
Priority
P4
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-08-21T04:41:41Z
Last change time
2024-12-01T16:15:34Z
Assigned to
No Owner
Creator
bearophile_hugs
Moved to GitHub: phobos#9593 →

Comments

Comment #0 by bearophile_hugs — 2012-08-21T04:41:41Z
This is part of Zip.empty() of Phobos: @property bool empty() { final switch (stoppingPolicy) { ... case StoppingPolicy.requireSameLength: foreach (i, Unused; R[1 .. $]) { enforce(ranges[0].empty == ranges.field[i + 1].empty, "Inequal-length ranges passed to Zip"); } return ranges[0].empty; } I suggest to replace that enforce() with a throw of a definite exception, named like ZipUnequals or something like that, that allows for a clean catch: catching the enforce() exception is easy, but you can't be sure you are catching that specific zip enforce instead of another one or a bug. Knowing that a zip(StoppingPolicy.requireSameLength, ...) has thrown an exception for unequal lengths is sometimes useful. When you want to use the zip results and you want to make sure they are equal in length, you want to catch just that specific length problem.
Comment #1 by razvan.nitu1305 — 2017-07-10T13:12:07Z
From what I understood, the phobos administrators are pretty reluctant to adding new exceptions unless they are definitely needed.
Comment #2 by robert.schadek — 2024-12-01T16:15:34Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/phobos/issues/9593 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB