try catch 如果用的地方很多,系统性能是否降低?

megvin 2008-05-10 08:45:36
我最近接手一个项目,项目中很多地方都用到try catch,在我看来那些地方本来通过判断可以不用try Catch的
比分说,对字符串转换数字,如果这个字符串为空的话,转换就会抛出异常,这样情况,只要判读字符是否为空,然后再转换就行了,
不必要用 try,我总觉得这个用的多了系统性能就会降低,大家有什么看法呢?希望大家给点意见,谢谢。
Try
If Convert.ToDouble(Me.lblLsPri.Text.Trim) <= 0 Then
MessageBox.Show("该油品未定价,将停止开单。", "停止", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
Catch ex As Exception
...全文
254 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
megvin 2008-05-11
  • 打赏
  • 举报
回复
谢谢大家,我基本上清楚了。
amandag 2008-05-10
  • 打赏
  • 举报
回复
        Try
If Convert.ToDouble(Me.lblLsPri.Text.Trim) <= 0 Then
MessageBox.Show("该油品未定价,将停止开单。", "停止", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
Catch ex As Exception

End Try

=================
        Dim temp As Double = 0
If Double.TryParse(Me.lblLsPri.Text.Trim, temp) Then
If temp <= 0 Then
MessageBox.Show("该油品未定价,将停止开单。", "停止", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Exit Sub
End If
End If
amandag 2008-05-10
  • 打赏
  • 举报
回复
这里不用try catch的用
Double.TryParse
lextm 2008-05-10
  • 打赏
  • 举报
回复
Catch ex As Exception
这一看就是初学者水平的代码,应该尽可能使用FxCop之类工具好好分析一下,把不合理的地方逐步修改。
hackztx 2008-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 userwjg 的回复:]
如果出现异常的时候try catch的效率才低,没有异常的情况下基本效率是一样的
[/Quote]

别误导。。。。。。。。。。

他本身就是一套捕捉错误的流程,甚至可以扩展到finally。。。。

如果你的程序出现异常,你可以在catch中捕捉到然后记录到如记事本,或者数据库内。。。。

最简单的,比如说我要做一个Crawler,抓取baidu知道已经解决的问题。。根据我数据库的手机型号关键字将关键字传入然后搜索,将搜索到的问题保存到数据库。。。。。这个时候我就需要用到try catch,他的html变化了。那么我的正则就匹配不到。。。尤其是日期问题,转换不了。。。必定让程序崩溃,这个时候我将我的手机型号的
PKID插入到数据库,下次运行的时候可以直接锁定到跑到了第几款手机。。。。。这样就可以减少不必要的动作。。。

userwjg 2008-05-10
  • 打赏
  • 举报
回复
如果出现异常的时候try catch的效率才低,没有异常的情况下基本效率是一样的
fsy123456accp 2008-05-10
  • 打赏
  • 举报
回复
try catch是100%影响系统性能的

相关的文章很多,楼主可以搜搜
我也同意这个说法
amandag 2008-05-10
  • 打赏
  • 举报
回复
try catch是100%影响系统性能的

相关的文章很多,楼主可以搜搜
LoveCherry 2008-05-10
  • 打赏
  • 举报
回复
http://msdn2.microsoft.com/en-us/library/ms954599.aspx
gyc 2008-05-10
  • 打赏
  • 举报
回复
Try catch 确实会影响一些性能

最明显的,就是 如果出错了,那么CLR会暂停,并有系统(Windows) 提供的异常处理还回馈,因此会慢一些(不过现在的CPU都是很快的)

另外,一点,.NET 编译器会对代码做优化,如果使用了 Try ,将不会执行优化, 这个是在JIT里执行的



我个人的看法是,如果可以,尽量用代码方法检查,

但如果出错了还给使用Try, 如果没有使用,最终会抛出到用户面前的
HimeTale 2008-05-10
  • 打赏
  • 举报
回复
基本没影响
比较基础的方法是在函数里throw,抛到事件中MessageBox.Show(ex.message)

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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