rb: Catch TransportException errors during the benchmark and report them


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@669031 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/rb/benchmark/client.rb b/lib/rb/benchmark/client.rb
index e8d3351..d5de8e7 100644
--- a/lib/rb/benchmark/client.rb
+++ b/lib/rb/benchmark/client.rb
@@ -19,18 +19,23 @@
       protocol = Thrift::BinaryProtocol.new(transport)
       client = ThriftBenchmark::BenchmarkService::Client.new(protocol)
       begin
+        start = Time.now
         transport.open
+        Marshal.dump [:start, start], STDOUT
       rescue
         Marshal.dump [:connection_failure, Time.now], STDOUT
       else
-        Marshal.dump [:start, Time.now], STDOUT
-        @calls_per_client.times do
-          Marshal.dump [:call_start, Time.now], STDOUT
-          client.fibonacci(15)
-          Marshal.dump [:call_end, Time.now], STDOUT
+        begin
+          @calls_per_client.times do
+            Marshal.dump [:call_start, Time.now], STDOUT
+            client.fibonacci(15)
+            Marshal.dump [:call_end, Time.now], STDOUT
+          end
+          transport.close
+          Marshal.dump [:end, Time.now], STDOUT
+        rescue Thrift::TransportException
+          Marshal.dump [:connection_error, Time.now], STDOUT
         end
-        transport.close
-        Marshal.dump [:end, Time.now], STDOUT
       end
     end
   end