newCTFE Status September 2019
rjframe
dlang at ryanjframe.com
Thu Sep 12 11:57:35 UTC 2019
On Thu, 05 Sep 2019 10:55:30 +0000, Dominikus Dittes Scherkl wrote:
> On Thursday, 5 September 2019 at 10:23:18 UTC, Stefan Koch wrote:
>> Well no, if you have CTFE code up the stack which catches the Exception
>> then it's fine.
>> It's only a problem if the Exception would escape out of the
>> ctfe-entry-point.
>>
>> Therefore I do have to provide the means for Exceptions to be thrown
>> and caught within ctfe.
>
> OMG. Do we really want a program to compile that throws and catches
> exceptions _during compilation_? Who programs such crappy shit should
> suffer worse than a simple compile error!
If `a` calls `b` calls `c` at compile-time, `c` can throw something that
`a` can catch, interpret, and rethrow with a more meaningful message/
context.
I'd argue that it is bad practice to have a thrown Exception at CT that
doesn't result in a failed compilation; compile-time exceptions should be
treated by the programmer like failed assertions - something has gone
wrong that needs to be fixed before deployment.
It is possible though:
---
int fail() { throw new Exception("error"); }
int func() {
try {
return fail();
} catch (Exception) {}
return 0;
}
enum a = func();
void main() {}
---
--Ryan
More information about the Digitalmars-d
mailing list