diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 1a16b093259933cbbcf7d43d15dfa2764b08e2ee..568774cecea9d302b15142053ce12212e77395ad 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -1440,6 +1440,9 @@ def _has_epollexclusive():
     return True
   except subprocess.CalledProcessError, e:
     return False
+  except OSError, e:
+    # For languages other than C and Windows the binary won't exist
+    return False
 
 
 # returns a list of things that failed (or an empty list on success)
@@ -1459,7 +1462,7 @@ def _build_and_run(
                                            suite_name=args.report_suite_name)
     return []
 
-  if not args.travis and not _has_epollexclusive() and 'epollex' in _POLLING_STRATEGIES[platform_string()]:
+  if not args.travis and not _has_epollexclusive() and platform_string() in _POLLING_STRATEGIES and 'epollex' in _POLLING_STRATEGIES[platform_string()]:
     print('\n\nOmitting EPOLLEXCLUSIVE tests\n\n')
     _POLLING_STRATEGIES[platform_string()].remove('epollex')