Не используйте try..catch
в качестве панацеи вне рамок. Удалите это оттуда и положите его вокруг тех инструкций, которые, как вы знаете, могут вызвать проблемы.
Чем крепче они, тем лучше. Вы тогда будете в состоянии справиться с этим делом, не нарушая из всего цикла или процедур:
for(...)
{
// procedural code
try {
// least possible problem code
} catch(Exception ex) {
// log/report error 1
// use continue/break to continue with next cycle or break out of the loop
Log.Message("Exception (in big loop #01): " + ex.Message);
}
// procedural code
try {
// least possible problem code
} catch(Exception ex) {
// log/report error 2
// use continue/break to continue with next cycle or break out of the loop
Log.Message("Exception (in big loop #02):" + ex.Message);
}
// procedural code
}
Таким образом, вы также будете иметь возможность определить, где произошло исключение.
Для входа исключения вы необходимо реализовать Log
класс таким образом:
using System.IO;
public class Log
{
public static void Message(string message)
{
using (StreamWriter writer = File.AppendText("path_to_dir\\log.txt"))
{
writer.WriteLine(message);
}
}
}
Этот Log
класс очень очень простой и может быть улучшена в следующих направлениях:
- DON» t использовать статические методы
- не использовать singleton, вставлять объект регистрации в функцию большого цикла
- добавить время и дату в фронт каждой линии
- добавить стандартного центра и тяжести (лучше всего, если взято из syslogd)
- позволяют также отправить электронную почту, если степень тяжести находится выше порогового уровня
- позволяет журнал прокатки в зависимости от времени, линия или размера файла
- Что произойдет, если возникает исключение при регистрации исключения? мета-исключение !?
- гораздо
Что я ставлю здесь просто чтобы дать вам представление об ошибке регистрации. Это довольно обширная область знаний.
Попробуйте/поймайте внутри петли? – Plue
Положите 'try catch' внутри LOOP2 – Jodrell
Возможный дубликат [Продолжить цикл итерации цикла после исключения] (http://stackoverflow.com/questions/16818532/continue-loop-iteration-after-exception-is-rown) – kei