1.e.printStackTrace()是打印异常栈信息
2.throw new RuntimeException(e)是把异常包在一个运行时异常中抛出
第一句话感觉实际开发意义不大,很少有人会去看控制台打印。。
第二种是把异常继续抛出,要么由上层方法解决,要么终止程序进行,应用范围比较广。
public Account findAccountByid(Integer id) {
try {
return runner.query("select * from account where id = ?",new BeanHandler<Account>(Account.class),id);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
就拿这段代码为例子来看:如果我们写第一种打印的方式,最后还需要加上该函数的返回值,否则就会报空指针异常的错误,但是如果我们采用第二种显而易见直接终止程序运行就不会出现前者的情况。