ApplicationException还是创建自定义异常?

Dav*_*New 8 .net c# asp.net exception-handling exception

在我的文件存储库中,我将在InsertFile()调用该方法时抛出以下异常:

  • 超出上载文件大小限制时
  • 超过存储容量时

目前我正在抛出ApplicationException相关信息:

public void InsertFile(HttpPostedFile uploadedFile)
{
    if (uploadedFile.ContentLength > FileSizeLimit)
    {
        throw new ApplicationException("File size limit exceeded.");
    }

    if (uploadedFile.ContentLength + FileStorageUsage > FileStorageCapacity)
    {
        throw new ApplicationException("File storage capacity exceeded.");
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

问题:

我应该在这里使用更好的异常类吗?

或者我应该通过派生来创建自己的自定义异常ApplicationException

Dam*_*ver 8

也许阅读文档:

如果您正在设计需要创建自己的异常的应用程序,建议您从Exception类中派生自定义异常.最初认为自定义异常应来自ApplicationException该类; 然而,在实践中,尚未发现这增加了重要价值.

至于是否有更好的例外 - ArgumentOutOfRangeException如果你不想定义自己的例外,有些人可能会考虑抛出一个例外.