我正在创建一个 C# 应用程序,并尝试在适当的时候利用自定义异常。我在这里查看了其他问题和 MSDN 设计指南,但没有遇到任何像我在这里想知道的那样具体的问题。
如何组织自定义异常的最佳实践是什么?
例如,我有一个Disk
抛出InvalidDiskException
. Disk
是唯一抛出此异常的类。
目前,我将异常嵌套在 Disk.cs 文件中,如下所示:
磁盘.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.
//
}
}
是否应该将异常定义在与 Disk 相同的级别(即不嵌套在其中)?异常是否应该嵌套在磁盘中但保留它自己的部分文件?可能还有其他更好的选择吗?如果还有其他我没有想到的考虑因素,请告诉我。