【发布时间】:2014-02-01 16:10:57
【问题描述】:
我正在使用 C# 试验 Thrift 服务。使用 REST 服务,未捕获的异常将由 Web 框架转换为 HTTP 500 响应代码。
据我所知,使用 thrift,我需要在我的 thrift 文件中声明所有可能的异常类型。这给我留下了两个我能想到的选择:
- 声明一个 InternalServerError 类型并将其添加到每个方法中。每个处理程序方法都需要捕获未处理的异常并重新抛出我的特殊类型。
- 让客户端体验这种情况下的默认行为,似乎是套接字意外关闭。
第一个选项会起作用,但对于看起来很常见的情况来说,这似乎是相当多的变通办法。我注意到在内部使用了一个 TApplicationException ,它似乎可以很好地工作,但我似乎无法在我的 thrift 文件中使用它,所以这不起作用。
thrift 用户在服务器端处理未捕获异常的惯用方式是什么?
【问题讨论】:
标签: c# exception thrift thrift-protocol