catch异常和throw异常的区别

我只想讲讲我在项目中遇到问题,并不仔细分析和研究。

今天项目启动,报了个NullPointException,然后项目就结束运行了,后来在大哥的指导下加了个catch,因为这是一个定时器导致的,而这个定时器是进行了频繁的http请求,如果网络不稳定,数据获取失败,这个NullPointExcepion是可能经常性的,然后后面因为我代码中并没有对这个可能产生的空指针进行处理,所以这个异常一致往上抛,最后就到了最外层导致了程序的运行结束。这个可以理解成我们写一个main方法,然后直接throws异常,出了异常这个main方法就直接挂了。

但是我们如果写一个catch,我们自己处理这个异常而不是把他抛出,例如只在catch中log.error(e.getMessage),那么只会把异常信息写入日志,而不把异常抛出到最外层,就能确保程序的正常运行,因为我们不能因为一个不稳定的定时器就导致整个程序结束,然后一出现异常就要求重启服务器。

原文地址:https://www.cnblogs.com/woyujiezhen/p/13363857.html