dirEntries throws exception on broken symlinks

Timothee Cour thelastmammoth at gmail.com
Tue Jan 7 15:45:11 PST 2014


I reported this here some time ago:
http://d.puremagic.com/issues/show_bug.cgi?id=11501 (dup of
http://d.puremagic.com/issues/show_bug.cgi?id=8298)
and there's a pull request ready, not sure why it isn't being merged


On Sun, Jan 5, 2014 at 10:20 PM, dennis <dennisr at visi.com> wrote:

> On Sunday, 5 January 2014 at 21:33:56 UTC, FreeSlave wrote:
>
>> You must not cast base class to derived class, when you don't know actual
>> type (and even if you know exact type it's still bad practice to cast
>> instance of more generic type to more specific one). Use multiple catch
>> statements instead:
>>
>> catch(FileException o)
>> {
>> //handle FileException
>> }
>> catch(Exception o)
>> {
>> //handle all other types of exceptions
>> }
>>
>> About dirEntries, you need to move your try/catch statements into loop
>> somehow. You probably should save result of dirEntries to variable and then
>> make manual loop instead of foreach. Result of dirEntries is lazy, so it
>> will not throw exception when you just get it.
>>
>> It may look like
>>
>> auto entries = dirEntries(your args);
>> while(!entries.empty)
>> {
>>     try
>>     {
>>         entry = entries.front;
>>         //do your stuff
>>     }
>>     //"catch" statements
>>     finally
>>     {
>>         entries.popFront();
>>     }
>> }
>>
>
> Thank you for the quick feedback.  Your explanation of the two problems
> works for me.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20140107/9dd62664/attachment.html>


More information about the Digitalmars-d-learn mailing list