Guava Preconditions RuntimeExceptions处理

Far*_*rah 0 java exception preconditions guava unchecked-exception

据我所知,在更改某些对象状态之前,我们使用Guava Preconditions快速失败(是stackoverflow的一个很好的答案).这很好.但是它会抛出运行时异常,这不是应用程序用户最喜欢的异常(500错误等等......).所以我需要你在设计方面给我一些帮助.

我有一个声明许多方法的接口.每个方法都有必须控制的参数(例如:not null).所以在实现类中我使用如下指令:

Preconditions.checkNotNull(fooObj);
Run Code Online (Sandbox Code Playgroud)

但是,调用此API的程序可能会因运行时异常而崩溃,在本例中为NullPointerException.

那么你如何处理这些未经检查的异常呢?

谢谢.

--------编辑应用层:

  • 数据访问层

  • API声明交换DTO的方法

  • 使用Guava实现API并检查参数的过程

  • Web服务取决于流程层

Lou*_*man 5

前提条件的失败意味着您的程序存在错误.用户不应该遇到这些,除非他们在您的程序中发现了错误.

如果出现错误,您的程序通常会向用户显示某种错误消息,但更重要的是,您应该获得通知,以便您可以首先修复错误.