老师 我想咨询一下关于异常的知识
throw new ExceptionInInitializerError(e);
throw e;
在catch块中书写这两种抛出异常有啥区别?这两个分别什么时候用啊?我有点点不清楚了?throw e是不是在不知道会抛出什么异常的时候用对吗?
21
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小脸
2022-11-02 18:29:25
同学你好,
1、throw e抛出的是e实例,也就是通过catch捕获的IOException或其他异常
如果是throw new ExceptionInInitializerError(e);抛出的是一个错误,当我们遇到IOException时主动抛出ExceptionInInitializerError通知调用者
2、需要结合具体的业务代码去决定,这里是为了sqlSession的初始化,由于静态代码块中的异常可能会影响程序的整体执行,所以需要将这个异常按照如下方式抛出去:throw new ExceptionInInitializerError(e)
3、关于throw e理解有误,同学可参考第一点
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星