我得到异常Thrift::TransportException (end of file reached)
,我想用消息(“文件结束到达”)来拯救它。
现在我做
begin
#...
rescue Thrift::TransportException => e
raise e unless "end of file reached" == e.message
# do whatever if it is not end of file reached.
end
有没有办法做这个红宝石?
答案 0 :(得分:5)
如果可以避免,不要依赖于消息的逻辑 - 消息只是文本,Thrift的开发者可以在任何给定的时间点自由更改它们,打破你的应用程序。
Thrift中的 TransportException
有一个type
,这是你可以看到here的常数之一。与您相关的是END_OF_FILE
。
至于代码中的实现,没有比在rescue
块中更好的方法来检查异常的属性,所以:
begin
#...
rescue Thrift::TransportException => e
raise e unless e.type == Thrift::TransportException::END_OF_FILE
# do whatever if it is not end of file reached.
end
答案 1 :(得分:0)
你不需要在raise
块中rescue
,我建议你把一个实例变量显示在你想要的任何地方。而且,1==a
非常难看,就像blue is a sky
begin
#...
rescue Thrift::TransportException => e
@error = e.message if e.message == "end of file reached"
# do whatever if it is not end of file reached.
end