On Tuesday, 13 December 2016 at 00:33:58 UTC, Yuxuan Shui wrote:
On Monday, 12 December 2016 at 22:35:22 UTC, Yuxuan Shui wrote:
On Monday, 12 December 2016 at 22:13:59 UTC, Ali Çehreli wrote:
On 12/12/2016 02:08 PM, Yuxuan Shui wrote:
> [...]
wrote:
>> [...]
Error.bypassedException
>> [...]
mechanism,
>> [...]
Error."
>> [...]
Exception,
>> [...]
otherwise
>> [...]
original
>> [...]
is the Error.
> [...]
Exception to
> [...]

Currently yes. Now this line in my versatile :o) program:

            if (n >= errorIndex) {

Two Errors are chained:

Caught
TestError: 3
 TestError: 4

However, there is the following ongoing thread claiming that it was a wrong decision:

  http://forum.dlang.org/post/o2n347$2i1g$1...@digitalmars.com

> [...]

From what I could graps from that much of documentation, yes, it seems to be a bug.

I did some testing and bypassedException is null in 2.072.1, but is not null in 2.070.2


Ali

The unwind process seem to stop one level too early, causing language_specific_data to be different, causing __dmd_personality_v0 to not chain exception into .bypassException.

OK. I think I figured it out. catch(Error x) won't catch TestException, so TestException 0,1,2 is not handled at main(). However TestError 3 (and TestExcepotion 4 which is chained to it) is handled at main(). And dmd won't put Throwables that are handled at different places together.

This behavior seems reasonable. So maybe this is actually a bug is LDC?

Reply via email to