What should happen when the assert message expression throws?
Meta
jared771 at gmail.com
Fri Nov 18 13:04:30 UTC 2022
On Friday, 18 November 2022 at 12:36:14 UTC, RazvanN wrote:
> Unfortunately, I don't see a clear way to rewrite this to valid
> D code as to catch the exception and then assert. Ideally, we
> could do something along the lines of:
>
> ```d
> assert(i == 42,
> (const(char)[] msg,
> try { msg = format("Bad parameter:", i); },
> catch (Exception e) { msg = "Assert message evaluation
> has failed";},
> msg)
> );
> ```
Why not rewrite it like so?
```d
assert(i == 42, ()
{
try
{
return format("Bad parameter:", i);
}
catch (Exception e)
{
return "Assert message evaluation has failed";
}
}());
```
More information about the Digitalmars-d
mailing list