ApplicationException或创建自定义异常
本文关键字:自定义异常 创建 ApplicationException | 更新日期: 2023-09-27 18:14:07
在我的文件存储库中,当调用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
派生创建自己的自定义异常吗?
不妨阅读文档:
如果您正在设计一个需要创建自己的异常的应用程序,建议您从
Exception
类派生自定义异常。最初认为自定义异常应该从ApplicationException
类派生;然而,在实践中,并没有发现这增加了显著的价值。
至于是否有更好的异常可以抛出——如果你不想定义自己的异常,有些人可能会考虑抛出ArgumentOutOfRangeException
。
假设这取决于您计划如何处理异常。抛出特定的异常可以让你对它们做出特定的响应。例如:
try
{
}
catch(FileSizeExceededException ex)
{
}
catch(StorageCapacityExceededException ex)
{
}
我将分别使用ArgumentException
和InvalidOperationException
。
到目前为止你所拥有的是好的,但我个人会抛出一个System.ArgumentException
(带有详细的消息)。