0

サーバーへのファイルの保存を処理するファイル リポジトリ ライブラリがあります。物理ファイルの保存に加えて、データベース エントリも記録されます。

以下は挿入方法です。

public DataFile InsertFile(string fileName, byte[] fileBytes)
{
    File.WriteAllBytes(Path.Combine(FileRepPath, fileName), fileBytes);

    DataFile dataFile = NewDataFile(
        fileName,
        fileBytes.Length
    );

    try
    {
        using (MyEntities context = new MyEntities())
        {
            context.DataFiles.Add(dataFile);
            context.SaveChanges();
        }
    }
    catch (Exception)
    {
        File.Delete(Path.Combine(FileRepPath, fileName));
        throw;
    }

    return dataFile;
}

データベースの更新に失敗した場合は、サーバーからファイルを削除したいと考えています。これを行うには、コンテキスト操作から発生するすべての例外をキャッチし、ファイルを削除します (そして、エラーが発生するようにエラーを再スローします)。

これは正しい習慣ですか?より具体的な例外をキャッチする必要がありますか?

4

1 に答える 1