如果操作过程中出现错误,则抛出哪个标准异常

本文关键字:异常 标准 错误 操作过程 操作 过程中 如果 | 更新日期: 2023-09-27 18:29:58

根据RTFM,我不应该直接使用Exception进行投掷。当重新分解代码时,我将大部分代码改为

  • 如果方法调用不足(前提条件、时间、状态等错误),则为InvalidOperationException
  • 每当出现超时时TimeoutExeption
  • 当使用错误的参数调用方法时,ArgumentException(以及相关的ArgumentNullExceptionArgumentOutOfRangeException

然而,当方法完成了一半的操作(所以参数和状态都可以),但随后出现了问题(在我的情况下,它是与外部设备的通信,当它突然报告"omg错误"时)时,我一直想弄清楚最适合的异常是什么。

中间进度完成异常的情况下,我应该使用什么标准异常(我不想派生自己的)?这个问题不难,但是。。。

如果操作过程中出现错误,则抛出哪个标准异常

这取决于具体情况。如果它是一个web服务(或者可能是一个网站),你可能会抛出一个500内部服务器错误。

在我的c#wcf服务中,在某些情况下,我会执行以下操作:

 throw new System.ServiceModel.Web.WebFaultException<string>(
                "Descriptive error message",
                System.Net.HttpStatusCode.InternalServerError);