Попробуйте блок catch во вложенном foreach l oop, не вернув правильный вывод, c# - PullRequest
0 голосов
/ 17 июня 2020

Я знаю, что этот вопрос задавали много раз, но я не могу понять логи c за ним. У меня есть этот вложенный foreach l oop, структурированный следующим образом:

 foreach (string currentFile in csvfiles)//loops through all csv files
 {
     string fileName = currentFile.Substring(Input_Path.Length);//works
     try
     {
         foreach (string line in File.ReadAllLines(currentFile))
         {
             wafer = Wafer_value(line, wafer);
         }
         Console.WriteLine(wafer);
         Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         Directory.Move(currentFile, Path.Combine(Error_Path, fileName));
         continue;
     }
 }

и метод для него:

public static string Wafer_value(string line, string wafer)
{
    try
    {
        if (line.Contains("Wafer"))
        {
            wafer = line;
        }
        string[] separatingStrings = { "Wafer: ", "," };
        string[] str = wafer.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);

        return str.First();
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
        throw new Exception();
    }
}//End Function Wafer_value

Какой код должен быть, если есть исключение в методе он перейдет к основному методу, где переместит этот файл в папку с ошибкой. Если в методе нет исключения, он будет работать как обычно, затем переместите его в archiveDirectory, который является основной папкой. Вот где я застрял. Когда есть все файлы с исключениями, он перемещает его в папку ошибок. Однако, когда в миксе есть файл без исключения, он перемещает только один из файлов исключений в папку с ошибками, а затем перемещает все оставшиеся файлы, даже если они имеют исключения для основной папки.

Для этого внутренний foreachl oop перебирает все строки файла, а внешний foreachl oop перебирает все csv-файлы.

Что бы я сделал, чтобы уверены, что все файлы, которые выдают исключения go в папку ошибок?

...