|
分類:[C#]
こんにちは。
CSVファイルを書き込む処理を実装しています。
よくあるように、using を利用しているのですが、該当ファイルが既にExcel開かれていると
StreamWriter のインスタンス生成で例外が発生します。
この例外の処理のため using ブロックを try - catch で囲んだのですが、try - catch は
比較的限定された範囲で使用するのが通例と聞いており、このように usingブロックを囲むと
範囲が広すぎるように思え、気持ち悪さがあります。
この例のように、using のインスタンス生成で例外が発生する場合は、using を使わず
try - catch - finally で実装するのが自然でしょうか。
ご教示いただければ幸いです。
static public string ExportCsv(string filename, IEnumerable<EventLog> list)
{
try {
var encoding = Encoding.GetEncoding("Shift_JIS");
using (var sw = new StreamWriter(filename, false, encoding)) {
sw.WriteLine(EventLog.Title);
foreach (var item in list) {
sw.WriteLine(item.ToCsv());
}
}
return "";
}
catch (Exception e) {
return e.Message;
}
}
|