11

私はC#アプリケーションを作成しており、必要に応じてカスタム例外を利用しようとしています。こことMSDNの設計ガイドラインで他の質問を見てきましたが、ここで疑問に思っているほど具体的なものは見つかりませんでした。

カスタム例外を整理する方法のベストプラクティスは何ですか?

たとえば、DiskをスローするクラスがありInvalidDiskExceptionます。Diskこの例外をスローする唯一のクラスです。

現在、次のようにDisk.csファイルにネストされた例外があります。

Disk.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OrganizingExceptionsInCSharp
{
    class Disk
    {
        [Serializable]
        public class InvalidDiskException : Exception
        {
            public InvalidDiskException() { }
            public InvalidDiskException(string message) : base(message) { }
            public InvalidDiskException(string message, Exception innerException) : base(message, innerException) { }
        }

        //
        // Code that throws the exception.
        //
    }
}

例外はディスクと同じレベルで定義する必要がありますか(つまり、内部にネストされていない)?例外はディスク内にネストする必要がありますが、それ自体の部分ファイルを保持する必要がありますか?他のより良いオプションがあるかもしれませんか?私が考えていない他の考慮事項があるかどうか私に知らせてください。

4

3 に答える 3

1

{MyNamespace}.Exceptions でカスタム例外を定義します。

于 2014-02-14T13:03:36.087 に答える
0

カスタム例外、IMHO は、1 つの単純な理由から、独自の独立したアセンブリにある必要があります。カスタム例外の共通理解。

于 2012-10-08T22:23:42.293 に答える