Bug?
Simen Kjærås
simen.kjaras at gmail.com
Tue May 5 05:37:08 UTC 2020
On Tuesday, 5 May 2020 at 04:02:06 UTC, RazvanN wrote:
> truct K
> {
> ~this() nothrow {}
> }
>
> void main()
> {
> static class C
> {
> this(K, int) {}
> }
>
> static int foo(bool flag)
> {
> if (flag)
> throw new Exception("hello");
> return 1;
> }
>
> try
> {
> new C(K(), foo(true));
> }
> catch(Exception)
> {
> }
> }
>
> Result:
>
> object.Exception at test.d(18): hello
>
> If the destructor of K is not marked nothrow the code does not
> throw an exception. Is this a bug or am I missing something?
Surely the above code, which silently discards the exception,
does not print "hello"?
Regardless, I ran your code with writeln inside the catch(), and
without the try-catch entirely, with and without nothrow on K's
destructor. I am unable to replicate the issue on my computer
with DMD 2.091.0, as well as on run.dlang.io. Is something
missing in your code here?
--
Simen
More information about the Digitalmars-d-learn
mailing list