【发布时间】:2012-08-11 18:40:09
【问题描述】:
在 C# 程序中,我有一个经常重复的错误检查:
try
{
File.Move(searchfolder + question1 +"_"+ filestring +".txt",
searchfolder + question1 +".txt");
}
catch (Exception ex)
{
File.AppendAllText(adminfolder + question1 +"_l.txt", "!");
side.Value = Convert.ToString(ex) + "[Check-In error at "
+ Convert.ToString(MYLINE) +"] "+ side.Value;
}
MYLINE 是一个数字,而 MYLINE 是唯一在我的程序中发生变化的东西。
因此,一个普通的 C++ #define 宏会使它更易于使用(我只需在程序顶部编写完整的“#define CHECKIN(MYLINE) ...”)。
专业人士如何在 C# 中处理这个问题?
【问题讨论】:
-
您能否进一步澄清一下,是整个 try catch 块保持不变,只是 catch,还是只是异常的字符串模板?
-
我希望你通常不要这样格式化你的代码。它是不可读的。
-
您需要查看 String.Format() 和 StringBuilder
-
根据 decylone 的建议,您应该将最后一行更改为
side.Value = String.Format("{0}[Check-In error at {1}] {2}", ex, MYLINE, side.Value); -
顺便说一句,很好的异常处理......如果 File.AppendAllText 会抛出怎么办?