RESTier提交逻辑,将错误消息推送到顶层

时间:2017-03-14 06:52:20

标签: exception-handling restier

我正在使用RESTier 0.6.0库,并希望在删除之前对资源执行一些检查。如果检查失败,我抛出一个Exception来停止删除操作。但是,我用于实例化Exception的错误消息不会在最高级别被推出。我只能在从Visual Studio提供Web API时将该消息视为内部异常。有没有办法让这个错误信息在最高级别推出?

// please, notice: not necessary List, not necessary of int
string[] test = new string[] {"A", "B", "C"};

List<string> slice = test.Slice(0, 1);

当前在EntityFrameworkApi中的OnDelete提交逻辑方法中抛出的任何异常都会导致如下错误:

{   “错误”:{     “code”:“”,“message”:“发生错误。”   } }

......这对客户来说并不是特别有用。

更新:我在RESTier文档MkDocs version中注意到,给出了一个示例,其中抛出了ODataException(而不是Exception)。我在我的代码中更改了此项,但已发布的Restier服务返回的错误对象仍然只有基本的“发生错误”信息。

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

在RESTier EntityFrameworkApi(例如inside和OnUpdate<EntitySet>方法)中抛出异常时,异常被反序列化为内部异常(internalexception)的一部分。因此,为了查看RESTier API中抛出的任何异常,需要...

  

在HttpConfiguration上设置IncludeErrorDetailPolicy属性   像这样的课:

config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always

Structure of error received by client

请参阅此帖子:OData controller returns different error for local and different for remote machine