- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
private static void WriteErrLog(string FileName, string errors)
{
try
{
string name = Environment.CurrentDirectory + "\\log\\" + FileName.Replace("80020_", "");
name = name.Replace(".xml", ".txt");
if (File.Exists(name))
name = name.Replace(".txt", "_" + DateTime.Now.ToString("yyyy-MM-dd hh_mm_ss") + ".txt");
using (StreamWriter f = new StreamWriter(name, true, Encoding.GetEncoding(1251)))
{
f.Write(errors);
}
}
catch { }
}
ICELedyanoj 16.02.2012 09:04 # +1
Но о Path.Combine автор не слышал.
Запись лога в текущую директорию? Возможно автор не в курсе о том, что она может свободно измениться в процессе исполнения программы. Кроме того директория может быть защищена UAC. Нужно пользовать специализированные пользовательские папки или на крайний случай запрашивать права, если так уж нужно писать в другие места.
Все остальные мансы с именем файла, конкатенкация там, где лучше очевиднее использовать String.Format, глухой catch, да и само написание велосипедов для логирования....
В общем грустный код.
Steve_Brown 16.02.2012 09:59 # 0
absolut 16.02.2012 10:05 # 0
В данном случае, код отладочный, и если возникли проблемы с записью, автор предпочел промолчать.
Хотя не помешало бы вывести ошибку куда-то в другое место, например на консоль.
bugmenot 16.02.2012 10:23 # −1
не знаю как в бейсике, но нормальные отладчики исключения журналируют, потом остановиться можно, стек посмотреть... хотя кому это нужно, работает же без ошибок
TarasB 16.02.2012 10:38 # −1
Потому что когда по логике исключения в принципе быть не должно, а оно есть, то лучше как-нибудь сообщить пользователю и попытаться работать дальше.
Steve_Brown 16.02.2012 11:00 # +2
absolut 16.02.2012 11:21 # +1
"нанести, смыть, повторить"
Steve_Brown 16.02.2012 12:31 # 0
ICELedyanoj 16.02.2012 12:41 # +1
А давить всё подряд - моветон.
absolut 16.02.2012 11:03 # +1
а) который что-то ловит и ничего не делает;
б) который всё ловит;
в) а) и б) вместе.
TarasB 16.02.2012 11:29 # 0
ICELedyanoj 16.02.2012 11:44 # 0
Т.е. аналог Resume Next от VB.
Т.е. что бы внутри трайкотча не случилось - без отладки этого никто никогда не узнает, разве что по косвенным признакам прерывания какой-то логики.
govnomonad 17.02.2012 07:03 # 0
absolut 17.02.2012 07:54 # 0
Lure Of Chaos 18.02.2012 22:30 # 0
guest8 09.04.2019 12:42 # −999