    @Test
    public void callExceptionMeteredStaticMethodOnceWithThrowingNonExpectedException() {

        final RuntimeException exception = new IllegalStateException("message");
        Runnable runnableThatThrowsIllegalStateException = new Runnable() {
            @Override
            public void run() {
                throw exception;
            }
        };

        // Call the metered method and assert it hasn't been marked and that the original exception has been rethrown
        try {
            MeteredStaticMethodWithExceptions.illegalArgumentExceptionMeteredStaticMethod(runnableThatThrowsIllegalStateException);
        } catch (RuntimeException cause) {
            assertThat("Shared metric registry is not created", SharedMetricRegistries.names(), hasItem(REGISTRY_NAME));
            MetricRegistry registry = SharedMetricRegistries.getOrCreate(REGISTRY_NAME);
            assertThat("Meters are not registered correctly", registry.getMeters().keySet(), is(equalTo(absoluteMetricNames())));
            assertThat("Meter count is incorrect", registry.getMeters().get(absoluteMetricName(0)).getCount(), is(equalTo(METER_COUNTS[0].get())));
            assertThat("Meter count is incorrect", registry.getMeters().get(absoluteMetricName(1)).getCount(), is(equalTo(METER_COUNTS[1].get())));
            assertSame("Exception thrown is incorrect", cause, exception);
            return;
        }

        fail("No exception has been re-thrown!");
    }