| 分類:[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; } } |