diff --git a/lib/celluloid_benchmark/visitor.rb b/lib/celluloid_benchmark/visitor.rb
index <HASH>..<HASH> 100644
--- a/lib/celluloid_benchmark/visitor.rb
+++ b/lib/celluloid_benchmark/visitor.rb
@@ -30,14 +30,7 @@ module CelluloidBenchmark
         begin
           instance_eval session
         rescue Mechanize::ResponseCodeError => e
-          self.request_end_time = Time.now
-          benchmark_run.async.log(
-            e.response_code, 
-            request_start_time, 
-            request_end_time, 
-            current_request_label, 
-            current_request_threshold
-          )
+          log_response_code_error e
         end
         
         elapsed_time = Time.now - started_at
@@ -81,5 +74,16 @@ module CelluloidBenchmark
         benchmark_run.async.log response.code, request_start_time, request_end_time, current_request_label, current_request_threshold
       end
     end
+    
+    def log_response_code_error(error)
+      self.request_end_time = Time.now
+      benchmark_run.async.log(
+        e.response_code, 
+        request_start_time, 
+        request_end_time, 
+        current_request_label, 
+        current_request_threshold
+      )
+    end
   end
 end
Extract complicated error logging into its own method