如果操作过程中出现错误,则抛出哪个标准异常
本文关键字:异常 标准 错误 操作过程 操作 过程中 如果 | 更新日期: 2023-09-27 18:29:58
根据RTFM,我不应该直接使用Exception
进行投掷。当重新分解代码时,我将大部分代码改为
- 如果方法调用不足(前提条件、时间、状态等错误),则为
InvalidOperationException
- 每当出现超时时
TimeoutExeption
- 当使用错误的参数调用方法时,
ArgumentException
(以及相关的ArgumentNullException
和ArgumentOutOfRangeException
)
然而,当方法完成了一半的操作(所以参数和状态都可以),但随后出现了问题(在我的情况下,它是与外部设备的通信,当它突然报告"omg错误"时)时,我一直想弄清楚最适合的异常是什么。
在中间进度或完成异常的情况下,我应该使用什么标准异常(我不想派生自己的)?这个问题不难,但是。。。
这取决于具体情况。如果它是一个web服务(或者可能是一个网站),你可能会抛出一个500内部服务器错误。
在我的c#wcf服务中,在某些情况下,我会执行以下操作:
throw new System.ServiceModel.Web.WebFaultException<string>(
"Descriptive error message",
System.Net.HttpStatusCode.InternalServerError);