Untested return values.

Lionello Lunesu lio at lunesu.remove.com
Thu Oct 5 06:53:47 PDT 2006

Kristian wrote:
> On Thu, 05 Oct 2006 14:45:42 +0300, Lionello Lunesu 
> <lio at lunesu.remove.com> wrote:
>> Kristian wrote:
> [snip]
>> If you don't care whether the file got deleted, why do you delete it 
>> in the first place? OK, I know very well what you're trying to say and 
>> I do it myself all the time, but I'll also admit that it's sloppy 
>> programming.
>> Furthermore, 'the D way' is to throw an exception, not to return some 
>> value that is or is not tested.
>> By the way, do you often use
>> try { /* some code*/ } catch (Object o) {/* no code*/}
>> too? They should, since the same reasoning applies to function 
>> throwing an exception.
> Ok, ok, maybe my 'eraseFile()' example wasn't the best one... :)
> I can't resist (sorry) pointing out that sometimes it's ok to silently 
> ignore errors. ;) For example, there is a program that creates a 
> temporary file. When the program is exited, the file will be deleted. 
> Now, if the file cannot be deleted for some reason, what could you do? 
> Notify the user with a message box telling that "Cannot delete the XXX 
> file." or "Please delete the XXX file, or else!..." (that would annoy 
> me, at least), or silently accept the fact that the file cannot be 
> deleted and exit the program? *grin*

Like I said: point taken :)

>>> Clearly you wouldn't want to do any extra work when calling functions 
>>> of the group A. Or have warning/error messages with them. However, 
>>> with the group B that would be ok.
>> Granted, so perhaps it could be a warning message after all. 
>> Definately not an error, we've established that.
> A warning message with an ability to turn it off? Or as I would prefer, 
> a warning with an ability turn it on (it's off by default)?

In D, warnings are off by default. You explicitly ask for warnings using -w.


More information about the Digitalmars-d mailing list