我正在使用thrift HttpClient(C#)向我设置的Web服务器发出Web请求,如果该服务器返回的内容不是200(或我想象的202),我的请求会抛出TTransport异常。
我想根据返回的特定状态代码响应此异常,但是我没有看到任何在异常接口中公开状态代码的内容。我错过了什么吗?我知道异常消息包含状态代码,但我不必解析该消息以获取状态代码。
答案 0 :(得分:0)
如果服务器遇到处理错误,推荐的方法不会抛出HTTP 500.相反,服务器应通过异常发出信号。考虑以下Thrift IDL:
exception MyProcessingError
{
1: string reason
2: string errorDetails
3: string recommendedAction
}
service FooBar {
void ProcessPayments( 1: double amount; 2: string receiver)
throws (1: MyProcessingError mpe)
}
与args和struct字段类似,可以声明多个异常类型。客户端可以像往常一样捕获这些异常:
try
{
client.ProcessPayments( 47.11, "Dagobert");
}
catch (MyProcessingError e)
{
// process exception
}
<强>说明强>
oneway
调用永远不会返回任何值,因此不会
例外情况。