Catch полностью пропускается (C#/Windows Forms)C#

Место общения программистов C#
Ответить
Anonymous
 Catch полностью пропускается (C#/Windows Forms)

Сообщение Anonymous »

Моя программа перебирает массив строк и находит/копирует файлы на основе этих строк. До недавнего времени все работало нормально - я не уверен, какое изменение вызвало шум, но в результате определенный Catch{} пропускается. Вот соответствующий раздел:

Код: Выделить всё

/* Copy */

var Missing = new List();
using (StreamReader groups = new System.IO.StreamReader(groupFile))
{
while (!groups.EndOfStream)
{
string sheetNumber = groups.ReadLine().Replace("(FULL", "").Replace("(HALF", "");
richTextBox2.AppendText("");
try
{
string[] matchedFile;

if (varLR != "")
{
matchedFile = Directory.GetFiles(GivenPath, "*-" + varLR + "-*" + sheetNumber + ".pdf");
}
else
{
matchedFile = Directory.GetFiles(GivenPath, "*" + varLR + "*-" + sheetNumber + ".pdf");
}

int c = 0;
// Determine if there are multiple sheets found that match the criteria ->
foreach (string dir1 in matchedFile)
{
c++;
string forlist = Path.GetFileNameWithoutExtension(dir1);
Dupes.Add(forlist);
}

if (c > 1)
{

ThisSheet = sheetNumber;
IsPicked = false;
PickOne();
string ReturnSheet = MultiWarn.ReturnSheet;

if (IsPicked == true)
{
matchedFile = Directory.GetFiles(GivenPath, "*" + ReturnSheet + ".pdf");
}
if (ReturnSheet == "skip")
{
richTextBox2.AppendText("This sheet does not appear to exist." + "(" + ce + ")" + System.Environment.NewLine);
MissingSheet = "Sheet " + sheetNumber + " from " + catchLot + System.Environment.NewLine;
Missing.Add(MissingSheet);
}
}

foreach (string dir in matchedFile)
{

string fileName = Path.GetFileNameWithoutExtension(dir);

string dirtrim = Path.GetFileNameWithoutExtension(dir);

richTextBox2.AppendText(" matched to " + fileName + System.Environment.NewLine);
File.Copy(Path.Combine(dir), Path.Combine(catchDir, i + "_" + fileName + ".pdf"), true);
i++;
progressBar2.PerformStep();
goto SkipError;

}

}

catch
{
//Some if statements in here to attempt matching strings via altered criteria
}

richTextBox2.AppendText("This sheet does not appear to exist." + "(" + ce + ")" + System.Environment.NewLine);
MissingSheet = "Sheet " + sheetNumber + " from " + catchLot + System.Environment.NewLine;
Missing.Add(MissingSheet);
SkipError: { }

}

}

cPar++;

OrderFull = OrderFull + FullSheetCount;
OrderHalf = OrderHalf + HalfSheetCount;
OrderPlot = OrderPlot + TotaltSheetCount;
OrderStaples = OrderStaples + staples;
StapleBox.Text = "" + OrderStaples;
FullBox.Text = "" + OrderFull;
HalfBox.Text = "" + OrderHalf;
PlotBox.Text = "" + OrderPlot;
staples = 0;
richTextBox2.AppendText("Full: " + OrderFull + System.Environment.NewLine);
richTextBox2.AppendText("Staples: " + OrderStaples + System.Environment.NewLine);
richTextBox2.AppendText("Plotting: " + OrderPlot + System.Environment.NewLine);
richTextBox2.AppendText("Half: " + OrderHalf + System.Environment.NewLine);
foreach (var Item in Missing)
{
richTextBox2.AppendText(Item);
File.AppendAllText(LotData, Item);
File.AppendAllText(mainDir + "Missing.txt", Item);
}

int CountMissing = Missing.Count();
richTextBox2.AppendText(CountMissing + "  sheets not found.");

TotalMissing = TotalMissing + CountMissing;

if (TotalMissing > 0)
{
MissAlert.Show();
}

}

}

}`
Поскольку я добавлял кое-что в этой области, я предположил, что где-то потерял скобку. Однако я не могу найти ничего плохого. Программа работает; когда он достигает строки, которая не может соответствовать файлу в первом блоке, он просто переходит к следующей строке и полностью игнорирует раздел Catch{}. Не могу понять почему.

Подробнее здесь: https://stackoverflow.com/questions/790 ... dows-forms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»