按类抓住exception?

我想抓住一个我期望的例外,但允许其他人通过。

我现在遇到的解决方案是:

protected void perfromCall(Class expectedException) throws Exception { try { response = call.call(request); } catch (Exception e) { if (!expectedException.isInstance(e)) { throw new Exception(e); } } } 

虽然这会默默地吃掉我想要的预期exception并扔掉其他exception,但是我不喜欢的是它包装了意外的exception,现在我必须在调用者中捕获意外而不是之前(在尝试默默地捕获之前)预期的exception)我可以让它们冒泡到测试框架以使测试失败。

是否有一种更清晰的方式来说“我期望A类的exception,但对于任何其他exception,让它被抛到链上,直到它由上面的测试框架处理”?

编辑:我想提供一些理由,说明为什么我要这样做,因为有一些答案(现已删除)质疑默默地吃exception。 这适用于调用服务的测试框架。 一些测试将错误的参数传递给服务,因此他们期望服务因捕获无效请求而抛出exception。 因此,我想默默地吃掉预期的exception,但仍然让意外的exception冒泡并且测试失败。

 protected void perfromCall(Class expectedException) throws Exception { try { response = call.call(request); } catch (Exception e) { if (!expectedException.isInstance(e)) { throw e; } } }