Why writeln can't be converted to nothrow with just catching of StdioException

Basile B. b2.temp at gmx.com
Mon Feb 21 10:57:07 UTC 2022


On Monday, 21 February 2022 at 10:53:56 UTC, Basile B. wrote:
> On Monday, 21 February 2022 at 10:49:13 UTC, partypooper wrote:
>> Do I completely not understand what is `nothrow` or why I 
>> can't make function nothrow with just catching StdioException?
>>
>> This doesn't work
>> ```d
>> nothrow void hello() {
>>   try {
>>     writeln("Hello, World!")
>>   } catch (StdioException) {}
>> }
>> ```
>> This doest work
>> ```d
>> nothrow void hello() {
>>   try {
>>     writeln("Hello, World!")
>>   } catch (Exception) {}
>> }
>> ```
>
> I believe it's because it can throw ConvException as well ;)

However you're totally right to open a discussion, the 
documentation is innacurate:

in https://dlang.org/phobos/std_stdio.html#.writeln

just StdioException is mentioned ;)


More information about the Digitalmars-d-learn mailing list