A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义异常处理时,什么时候定义try,什么时候定义throws呢?

3 个回复

倒序浏览
在可能会出现exception的地方,要使用try-catch或者throws或者两者都要。我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-catch掉这个exception;如果希望外部知道,则在catch到之后把exception直接抛出或者抛出自定义的exception。
1、如果无法处理某个异常,那就不要捕获它。
2、如果捕获了一个异常,请不要胡乱处理它。
3、尽量在靠近异常被抛出的地方捕获异常。
4、在捕获异常的地方将它记录到日志中,除非您打算将它重新抛出。
5、按照您的异常处理必须多精细来构造您的方法。
6、需要用几种类型的异常就用几种,尤其是对于应用程序异常。
回复 使用道具 举报
任何与系统内存有关联的时候,就必须try catch     
回复 使用道具 举报
一般的原则很简单:谁引起的异常谁try/catch,否则throw

举2个例子:
ArrayList类的get方法,如果get方法的调用者传入一个越界的下标,那么问题的责任在调用者而不是get方法的编写者。因此,get方法中发现下标异常,throw即可

TreeSet中重写了clone方法,其源代码中调用了其父类的clone方法,由于是我调用的,那么出了问题当然由我负责,因此TreeSet的clone方法中有一个try/catch块来处理CloneNotSupport异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马