On 2013-03-30 05:06:31 +0000, "J" <[email protected]> said:

Is there anything that would prevent D from catching C++ exceptions?

It would be nice to be able to leverage C++ libraries, but if you can't catch C++ exceptions, I'm not sure how realistic that is.

That doesn't mean that catch() in D has to be the catcher.

If there was some way to indicate that a function call was into a C++ library, and perhaps some way to auto-generate, at the call point, the boilerplate that does the "catch this C++ exception and re-throw it as a D exception" translation, that would be awesome.

Possible?

In my D/Objective-C hack I made a few years ago, I made it work for Objective-C exceptions [1]. So it's certainly doable.

[1]: http://michelf.ca/projects/d-objc/syntax/#exceptions

It would be more tricky though because C++ exceptions are thrown by-value. And some things will have to work differently to accommodate each platform's ABI. And you'll likely get a performance penalty in normal code for settings the handler frames.

But it can be done.


--
Michel Fortin
[email protected]
http://michelf.ca/

Reply via email to