为什么加了try catch程序变慢了好多

qq_22763887 2017-12-13 10:38:55
计算机专业毕业的,大学基本没学习。前段时间考了个事业单位的信息中心,这边让我自己开发程序。就是那种信息管理系统。
因为确实不怎么会,我就一边自学一边模仿别人的代码开始写。。。前两天看书 说是有的地方要加try catch来处理异常,于是我就把dao层的所有方法都加了个try catch。。。。然后现在程序慢的要死 ,我想问下这是怎么回事?百度上说的我都看不太懂,烦请各位大神不吝指教。(本人小菜鸡一个)
...全文
421 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34350475 2017-12-16
  • 打赏
  • 举报
回复
引用 9 楼 qq_22763887 的回复:
引用 1 楼 qq_34350475 的回复:
try catch 是用来捕获处理异常的,在可能会出现bug的地方添加,然后在catch里处理,也可以抛到上一级去处理,并不是越多越好,每个方法都去添加肯定会影响性能,而且有的是系统会自动抛出的异常,你再去重复捕获就多余了,你重点要做的是处理,还要看你catch里的处理方式是什么,能预料的bug就提前控制处理,不能预料的再trycatch捕获,如果只是打印错误信息,还不如直接添加日志,日志也是一直监控程序是否运行正常的手段
恩恩 谢谢大神指教 。我赶紧去学学日志怎么整。
不敢当,我也没学多久
qq_22763887 2017-12-14
  • 打赏
  • 举报
回复
引用 10 楼 zzm9876789 的回复:
[quote=引用 8 楼 qq_22763887 的回复:] [quote=引用 4 楼 CEOCAO 的回复:] 1、不要所有的方法都加,没必要建立那么多变量,增加垃圾回收压力,只在很可能出现bug的地方加 2、用的是封装后的框架吗?DAO层是不是已经有异常信息处理了,你再加捕获就多余了 3、加了捕获机制后,拿到异常你是怎么处理? 我觉得你很慢是因为在处理这块
用的都是servlet+jsp 就是操作数据库用的是我们主任自己封装的框架(也不知道算不算框架) 我当时加tyr catch是为了防止项目挂掉,至于怎么处理我也不知道。。。[/quote] 差一点被你带沟里是“try”,加try项目就不会挂了么,try只是帮助,有错误还是要改的。新手就不要考虑性能的问题了,只要功能可以实现就OK了。我是这么认为的。[/quote]恩恩 谢谢
qq_22763887 2017-12-14
  • 打赏
  • 举报
回复
引用 2 楼 mymy1026 的回复:
你这种量级,不需要考虑trycatch对效率的影响,或者说trycatch对你几乎没有影响,你需要考虑是否是其他原因导致变慢
确实 我写的这个系统上线后也就两千多个用户,,,,
zzm_fengye 2017-12-14
  • 打赏
  • 举报
回复
引用 8 楼 qq_22763887 的回复:
[quote=引用 4 楼 CEOCAO 的回复:] 1、不要所有的方法都加,没必要建立那么多变量,增加垃圾回收压力,只在很可能出现bug的地方加 2、用的是封装后的框架吗?DAO层是不是已经有异常信息处理了,你再加捕获就多余了 3、加了捕获机制后,拿到异常你是怎么处理? 我觉得你很慢是因为在处理这块
用的都是servlet+jsp 就是操作数据库用的是我们主任自己封装的框架(也不知道算不算框架) 我当时加tyr catch是为了防止项目挂掉,至于怎么处理我也不知道。。。[/quote] 差一点被你带沟里是“try”,加try项目就不会挂了么,try只是帮助,有错误还是要改的。新手就不要考虑性能的问题了,只要功能可以实现就OK了。我是这么认为的。
qq_22763887 2017-12-14
  • 打赏
  • 举报
回复
引用 1 楼 qq_34350475 的回复:
try catch 是用来捕获处理异常的,在可能会出现bug的地方添加,然后在catch里处理,也可以抛到上一级去处理,并不是越多越好,每个方法都去添加肯定会影响性能,而且有的是系统会自动抛出的异常,你再去重复捕获就多余了,你重点要做的是处理,还要看你catch里的处理方式是什么,能预料的bug就提前控制处理,不能预料的再trycatch捕获,如果只是打印错误信息,还不如直接添加日志,日志也是一直监控程序是否运行正常的手段
恩恩 谢谢大神指教 。我赶紧去学学日志怎么整。
qq_22763887 2017-12-14
  • 打赏
  • 举报
回复
引用 4 楼 CEOCAO 的回复:
1、不要所有的方法都加,没必要建立那么多变量,增加垃圾回收压力,只在很可能出现bug的地方加 2、用的是封装后的框架吗?DAO层是不是已经有异常信息处理了,你再加捕获就多余了 3、加了捕获机制后,拿到异常你是怎么处理? 我觉得你很慢是因为在处理这块
用的都是servlet+jsp 就是操作数据库用的是我们主任自己封装的框架(也不知道算不算框架) 我当时加tyr catch是为了防止项目挂掉,至于怎么处理我也不知道。。。
qq_22763887 2017-12-14
  • 打赏
  • 举报
回复
引用 6 楼 hanpoyangtitan 的回复:
这种问题不应该来论坛发帖问,应该问问带你的人。在提问前想想是否可能?
额 我们单位就我和我们主任是干这个的 问我们主任他都是让我自己摸索
什么都不能 2017-12-13
  • 打赏
  • 举报
回复
这种问题不应该来论坛发帖问,应该问问带你的人。在提问前想想是否可能?
zk_Kang 2017-12-13
  • 打赏
  • 举报
回复
你只要在控制层中调用一次try catch就行了,上面说的都挺不错的,try用来出现bug进行处理的地方,所以在最上面一层的调用时使用就好了。
咸哼酒家 2017-12-13
  • 打赏
  • 举报
回复
1、不要所有的方法都加,没必要建立那么多变量,增加垃圾回收压力,只在很可能出现bug的地方加 2、用的是封装后的框架吗?DAO层是不是已经有异常信息处理了,你再加捕获就多余了 3、加了捕获机制后,拿到异常你是怎么处理? 我觉得你很慢是因为在处理这块
Cathy313 2017-12-13
  • 打赏
  • 举报
回复
首先,1楼已经告诉你了;其次,Dao层一般尽量不用try catch,有可能有异常的用throws,所有的异常在最外层的Action/controller中使用try-catch捕捉,其它地方一律不建议使用;对于捕获后,不知道干什么事情或者也不知道怎样处理的情况,就不要捕获异常,留给外层去捕获处理。
  • 打赏
  • 举报
回复
你这种量级,不需要考虑trycatch对效率的影响,或者说trycatch对你几乎没有影响,你需要考虑是否是其他原因导致变慢
qq_34350475 2017-12-13
  • 打赏
  • 举报
回复
try catch 是用来捕获处理异常的,在可能会出现bug的地方添加,然后在catch里处理,也可以抛到上一级去处理,并不是越多越好,每个方法都去添加肯定会影响性能,而且有的是系统会自动抛出的异常,你再去重复捕获就多余了,你重点要做的是处理,还要看你catch里的处理方式是什么,能预料的bug就提前控制处理,不能预料的再trycatch捕获,如果只是打印错误信息,还不如直接添加日志,日志也是一直监控程序是否运行正常的手段

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧