Guava Throwables是一个Google设计的能够更好的管理JAVA Exception 抛出的一个工具,但是说实话我自己感觉这个实用性并没有那么的大,而Google自己也在文档中阐明了使用Throwables的争议性很大, 并且说只有在某些特定情况下Throwables才能显得有用。 我在这里列出Throwables的一些常用方法,大家见人见智。
RuntimeException propagate(Throwable)
Throwables 把任何Throwable包装成 RuntimeException 然后抛出。我认为这在J2EE的情况下可能有些用,大家知道在EJB 的SessionBean或者Spring 的用事务包装的业务层的方法,默认只有在出RuntimeException的时候才会触发事务回滚, 这个时候可以用
try {
someMethodThatCouldThrowAnything();
} catch (Throwable t) {
throw Throwables.propagate(t); // 但是可以直接用 throw new RuntimeException()代替,而且更加明显
}
2 .void propagateIfInstanceOf(Throwable, Class<X extends Exception>)
只有给定Throwable是指定EXCEPTION 的时候,才抛出指定EXCEPTION异常
3. void propagateIfPossible(Throwable)
只有Throwable是RuntimeException或者是Error的时候才抛出异常
4. void propagateIfPossible(Throwable, Class<X extends Throwable>)
只有Throwable是RuntimeException或者是Error或者是指定EXCEPTION的时候才抛出异常
Guava学习总结之- 5 - Basic Utilities - Throwables
原文地址:http://545979.blog.51cto.com/535979/1546223