8

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.");
    }

    // ...
}

问题:

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

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

4

4 回答 4

8

也许阅读文档

如果您正在设计需要创建自己的异常的应用程序,建议您从Exception类派生自定义异常。最初认为自定义异常应该从ApplicationException类派生;然而,在实践中,这并没有增加显着的价值。

至于是否有更好的异常可以抛出——ArgumentOutOfRangeException如果你不想定义自己的异常,有些人可能会考虑抛出一个。

于 2013-05-17T06:51:07.033 回答
3

假设这取决于您计划如何处理异常。抛出特定的异常可以让你响应它们,嗯,特别的。例如:

try
{
}
catch(FileSizeExceededException ex)
{
}
catch(StorageCapacityExceededException ex)
{
}
于 2013-05-17T06:54:51.653 回答
3

我会分别使用 anArgumentException和 an InvalidOperationException

于 2013-05-17T06:56:12.957 回答
1

那么到目前为止你所拥有的一切都很好,但我会亲自抛出一个System.ArgumentException(带有详细信息)。

于 2013-05-17T06:53:41.833 回答