support 5.12 or later
tests require Test::Exception