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