Should C functions automatically be nothrow?

Martin Nowak dawg at dawgfoto.de
Tue Feb 7 16:47:05 PST 2012


On Tue, 07 Feb 2012 20:53:45 +0100, Walter Bright  
<newshound2 at digitalmars.com> wrote:

> On 2/7/2012 5:40 AM, Stewart Gordon wrote:
>> On 07/02/2012 02:04, Jonathan M Davis wrote:
>>> Can C functions throw? I don't know of any way that a C function could  
>>> throw.
>> <snip>
>>
>> On top of what the others have said, functions written in C can  
>> certainly throw
>> such things as AVs.
>
> Although seg faults are converted into D exceptions on Windows by  
> druntime, and so can be caught, I suspect this was not a good idea. It's  
> completely non-portable to other systems.
>
> Nor would C code do such a conversion anyway.
>

I'm not a big fan of translating async exceptions which causes enough bad  
usage in C++ land.
We're translating them to Errors though.

Visual C++ allows to switch between different EH models  
http://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.100).aspx.


More information about the Digitalmars-d mailing list