[cloud functions] Print request info when cloud function throws an exception.

Change-Id: I6e05d5d636d6ebf1261eddb4ac8ab670aea25bd6
Bug: https://github.com/dart-lang/dart_ci/issues/49
Reviewed-on: https://dart-review.googlesource.com/c/dart_ci/+/127281
Reviewed-by: Jonas Termansen <sortie@google.com>
diff --git a/functions/node/index.dart b/functions/node/index.dart
index 1242414..7a016c8 100644
--- a/functions/node/index.dart
+++ b/functions/node/index.dart
@@ -18,12 +18,16 @@
   final results = (message.json as List).cast<Map<String, dynamic>>();
   final first = results.first;
   final String commit = first['commit_hash'];
-
-  if (commit.startsWith('refs/changes')) {
-    return Tryjob(commit, FirestoreServiceImpl(), http.NodeClient())
-        .process(results);
-  } else {
-    return Build(commit, first, FirestoreServiceImpl(), http.NodeClient())
-        .process(results);
+  try {
+    if (commit.startsWith('refs/changes')) {
+      return Tryjob(commit, FirestoreServiceImpl(), http.NodeClient())
+          .process(results);
+    } else {
+      return Build(commit, first, FirestoreServiceImpl(), http.NodeClient())
+          .process(results);
+    }
+  } catch (e) {
+    print('Exception when processing message. First record is:\n$first');
+    rethrow;
   }
 }