digitalmars.D.learn - assert(expression, error)
- spir <denis.spir gmail.com> Feb 12 2011
- Tomek =?ISO-8859-2?Q?Sowi=F1ski?= <just ask.me> Feb 12 2011
- Michel Fortin <michel.fortin michelf.com> Feb 12 2011
Hello,
Is there a way to specify what error to throw using (a variant of) assert:
assert(n > 0, new ValueError("..."));
(Sure, one can write:
if (n <= 0)
throw new ValueError("..."));
but the same remark applies to plain assert: the whole point of assert is to
have it as builtin feature with clear application field & well-known semantics,
shared by the community of D programmers.)
Denis
--
_________________
vita es estrany
spir.wikidot.com
Feb 12 2011
spir napisa=B3:Is there a way to specify what error to throw using (a variant of) assert: assert(n > 0, new ValueError("...")); =20 (Sure, one can write: if (n <=3D 0) throw new ValueError("...")); but the same remark applies to plain assert: the whole point of assert is=
have it as builtin feature with clear application field & well-known sema=
shared by the community of D programmers.)
With built-in assert, no. But std.exception can do it. enforce(n > 0, new ValueError("...")); --=20 Tomek
Feb 12 2011
On 2011-02-12 10:05:34 -0500, Andrej Mitrovic <andrej.mitrovich gmail.com> said:Btw, is the inline problem just a DMD implementation problem, or does enforce have to be fixed for that?
DMD implementation problem. The inliner doesn't support ref, out, lazy, and delegate arguments at this time. Enforce uses a lazy second argument so it doesn't get inlined. -- Michel Fortin michel.fortin michelf.com http://michelf.com/
Feb 12 2011









Tomek =?ISO-8859-2?Q?Sowi=F1ski?= <just ask.me> 