What does nothrow buy me?

Atila Neves atila.neves at gmail.com
Wed Oct 28 12:52:36 UTC 2020


On Tuesday, 27 October 2020 at 18:21:23 UTC, H. S. Teoh wrote:
> On Tue, Oct 27, 2020 at 06:10:45PM +0000, Atila Neves via 
> Digitalmars-d wrote:
>> On Monday, 26 October 2020 at 18:47:41 UTC, Q. Schroll wrote:
> [...]
>> > At first glance, one could assume a nothrow function can 
>> > save the compiler from the need to generate exception 
>> > handling stuff for a function. But since nothrow doesn't 
>> > mean the function won't throw, but merely that it won't 
>> > throw an Exception, what optimizations does nothrow enable?
>> 
>> It's also extremely useful for when D code is being called 
>> from other languages. Throwing an exception from a function 
>> registered with Python is not a thing one wants to do, for 
>> instance.
>
> But how does it help in the case of throwing an Error from a 
> function registered with Python?  Arguably, that's something 
> you even *more* wouldn't want to do.
>
>
> T

Unfortunately, it doesn't. But errors are supposed to mean a 
non-recoverable problem anyway. I know it's not always like that 
in practice and that you don't want to crash someone's Excel 
sheet, but... making them nothrow makes me write a catch block, 
which makes me also catch errors.


More information about the Digitalmars-d mailing list