A-A+
如何选择是使用Exception还是RuntimeException呢?
如何选择是使用Exception还是RuntimeException呢?
Java中的Exception来源于C++但是又于C++不同。C++只有一类Exception基类,但是Java有Exception和RuntimeException,虽然RuntimeException也是直接继承自Exception,两者之间的差异在于,RuntimeException可以不必在方法声明时声明,而由JVM内在的机制处理此类异常,此类异常一般意味着开发人员的编码错误等。
以下三点有助于在使用异常机制时,该如何选择使用Exception还是RuntimeException。
1.如果这个异常总是由编程错误引起,那么,让这个异常成为RuntimeException的子类。
2.如果这个异常意味着用户输入了错误的数据,那么你可以使用RuntimeException,这样可以在你的工程的处理事务逻辑的类上不必声明抛出此类异常。尽管如此,在GUI和其他接口程序上,程序本身应该处理这些异常而不是交由JVM来处理。
3.如果这个异常总是由事务逻辑错误导致,那么让他成为Exception的子类然后使用异常过滤的方法,以免异常处理在整个工程蔓延。