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.