class Program
{
static void Main(string[] args)
{
var getfiles = new fileshare.Program();
string realname = "*test*";
string Location = "SVR01";
foreach (var file in getfiles.GetFileList(realname,Location))
{getfiles.copytolocal(file.FullName); }
}
private FileInfo[] GetFileList(string pattern,string Location)
{
try
{
switch (Location)
{
case "SVR01":
{
var di = new DirectoryInfo(@"\\SVR01\Dev");
return di.GetFiles(pattern);
}
case "SVR02":
{
var di = new DirectoryInfo(@"\\SVR02\Dev");
return di.GetFiles(pattern);
}
case "SVR03":
{
var di = new DirectoryInfo(@"\\SVR03\Prod");
return di.GetFiles(pattern);
}
default: throw new ArgumentOutOfRangeException();
}
}
catch(Exception ex)
{ Console.Write(ex.ToString());
return null;
}
}
private void copytolocal(string filename)
{
string nameonly = Path.GetFileName(filename);
File.Copy(filename,Path.Combine(@"c:\",nameonly),true);
}
}
Am handle the default switch statement but not sure am doing right,some one please correct me .
Thanks in Advance
You should throw an exception only in cases where you don’t expect something to happen. If a directory other than SRV01/02/03 is not expected, throwing exception could be fine. If you expect it to happen and want to handle it gracefully, don’t throw an exception.
But catching the exception you just threw and writing it to the console in the same function doesn’t make sense. You kill all the purpose of throwing an exception there. If you want to write an error to the console, you can do that directly in the default statement.
If you want to handle the case when
GetFilesthrows an exception, handle it specifically. Catching an exception and writing it to console does not make sense. If you catch it, it means that you know what to do with it. If you don’t, don’t catch it.Say your network is dead and
GetFilesraisesIOException. You catch it and return null and your code will raiseNullReferenceException. Because of that, you lose the information about why that exception is raised.What do you want to do if network connection is lost? You want to exit? Then you don’t need to do anything, an unhandled exception already does that for you. You need to continue running? Are you sure? If app exits successfully will it mean “it has completed everything it’s supposed to do” or “there could have been problems but you don’t care”? If you’re sure it’s ok to “ignore” the error, then catch the exception, inform and continue, it’s fine. Just make sure of your intent. Exceptions aren’t bad or evil. They are there because they are helpful.