当前位置: 首页 > 编程语言 > C#

ASP.NETOdataWebAPI错误处理分享

时间:2023-04-11 01:02:04 C#

ASP.NETOdataWebAPI错误处理我想知道在ODataController中抛出异常的最佳实践是什么。如果在方法中抛出异常,则默认转换为响应代码500,内容包含有关错误的详细信息。我想明确响应代码并在密钥无效的情况下发送400。例如:如果输入请求有一个无效的键,你想返回一个400的HttpResponseCode,内容应该有抛出异常等错误细节。非常感谢您的输入OData(至少从v3开始)使用特定的json来表示错误:{"error":{"code":"Acustomerrorcode","message":{"lang":"en-us","value":"给用户的自定义长消息。"},"innererror":{"trace":[...],"context":{...}}}}Microsoft.Net包含Microsoft.Data.OData.ODataError和Microsoft.Data.OData.ODataInnerError类在服务器端形成OData错误。要形成包含错误详细信息的正确OData错误响应(HttpResponseMessage),您可以:1)使用System.Web.OData.Extensions.HttpRequestMessageExtensions.CreateErrorResponse方法在控制器的操作中形成并返回HttpResponseMessagereturnRequest.CreateErrorResponse(HttpStatusCode.Conflict,newODataError{ErrorCode="...",Message="...",MessageLanguage="..."}));2)使用同样的方法抛出HttpResponseException来创建HttpResponseMessage}));3)抛出自定义类型异常并使用WebApiAction过滤器进行转换varresponse.CreatResponse=text,newODataError{ErrorCode=e.StatusCodeString,Message=e.Message,MessageLanguage=e.MessageLanguage});context.Response=响应;}否则base.OnException(上下文);}}使用HttpResponseException,例如,thrownewHttpResponseException(HttpStatusCode.NotFound);详细信息可以在这里找到。以上就是《C#学习教程:ASP.NETOdataWebAPI错误处理》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: