Add a test for duplicate catch clauses in throw matchers, fix a couple of nitpicks.
diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h
index 708c7c8..3662520 100644
--- a/googlemock/include/gmock/gmock-matchers.h
+++ b/googlemock/include/gmock/gmock-matchers.h
@@ -4738,7 +4738,6 @@
   ExceptionMatcherImpl(Matcher<const Err&> matcher)
       : matcher_(std::move(matcher)) {}
 
- public:
   void DescribeTo(::std::ostream* os) const {
     *os << "throws an exception of type " << GetTypeName<Err>();
     if (matcher_.GetDescriber() != nullptr) {
@@ -4775,7 +4774,7 @@
       *listener << "with description \"" << err.what() << "\"";
       return false;
     } catch (...) {
-      *listener << "throws an exception of some other type";
+      *listener << "throws an exception of an unknown type";
       return false;
     }
     *listener << "does not throw any exception";
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc
index 0741187..cd89d81 100644
--- a/googlemock/test/gmock-matchers_test.cc
+++ b/googlemock/test/gmock-matchers_test.cc
@@ -8139,6 +8139,12 @@
           Property(&std::runtime_error::what, HasSubstr("message"))));
 }
 
+TEST(ThrowsTest, DoesNotGenerateDuplicateCatchClauseWarning) {
+  EXPECT_THAT(
+      []() { throw std::exception(); },
+      Throws<std::exception>());
+}
+
 TEST(ThrowsTest, Describe) {
   Matcher<void (*)()> matcher = Throws<std::runtime_error>();
   std::stringstream ss;