请问try catch里面可以套try catch吗?

learning8899 2011-04-01 01:39:50
请教个问题,try catch里面可以套try catch吗?
比如
try
{
....
try
{
}
catch{};
....
}
catch
{
}
里面套个try catch主要是因为里面的异常就是出现了,也没有什么大后果,所以打算忽略掉
...全文
8361 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
nielulu_123 2012-06-04
  • 打赏
  • 举报
回复
当然可以了
wzp144650 2011-04-01
  • 打赏
  • 举报
回复
自己试试呀,唉。
danran251689 2011-04-01
  • 打赏
  • 举报
回复 1
try
{
//A
try
{
//B
}
catch
{
//C
}
finally
{
//D
}
//E
}
catch
{ ... }
finally
{ ... }

抛出异常在:内层A,E处由外层catch块捕获,并执行外层finally
抛出异常在:内层B处,且有一合适内层catch捕获,执行内层finally,后执行E处
抛出异常在:内层B处,但内层catch块没有合适处理程序,执行内层finally,搜索外层catch,找合适的,执行外层finally,此时不会执行E
抛出异常在:内层C处,退出内层catch块,执行内层finally,搜索外层catch,找到合适,执行外层finally
抛出异常在:内层D处,退出内层finally块,搜索外层catch,找到合适,执行外层finally



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lulu_jiang/archive/2010/06/22/5685932.aspx
learning8899 2011-04-01
  • 打赏
  • 举报
回复
谢谢大家。嵌套的那个try catch,主要是为了忽略用的。
插入字段,其中一个是日期型的,这个日期可有可无,但是如果格式错了,就会异常,如果不嵌套catch的话,那么遇到错误的日期,就不继续工作了,跑到catch后面去了。比如
插入100条记录,第10条记录的日期字段是错的,那么第10条记录发生了convetstringtodatetime这个异常,就忽略掉,继续插入第11条记录。如果不嵌套的话,第10条以后的记录就无法插入了。
cy19851024 2011-04-01
  • 打赏
  • 举报
回复
前辈们说了 try catch 要用的明白 乱用消耗资源
sunbett 2011-04-01
  • 打赏
  • 举报
回复
可以嵌套,层级上抛
KeepMoving 2011-04-01
  • 打赏
  • 举报
回复
可以,但不知道他还有个名称,学习了!
gelines 2011-04-01
  • 打赏
  • 举报
回复
可以,但推荐一个try 多个catch
cjh200102 2011-04-01
  • 打赏
  • 举报
回复
9楼正解

一个try可以多个catch,不建议嵌套使用
trilcc 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 porschev 的回复:]
引用 9 楼 wuyazhe 的回复:

问对问题很关键。能不能的问题自己试试就有答案了。你该问:这么做好么?



可以。。但可以不用嵌套。。。

一个try可以多个catch...
[/Quote]还可以这样啊,没用过,受教
trilcc 2011-04-01
  • 打赏
  • 举报
回复
可以使可以的,但是不推荐这么做
williamsong997 2011-04-01
  • 打赏
  • 举报
回复
结贴给分吧。
程序员敏敏 2011-04-01
  • 打赏
  • 举报
回复
可以的
hanzhehanzhe 2011-04-01
  • 打赏
  • 举报
回复
嵌套是可以的,但是正像楼上几位说的,不建议这么做
你可以多几个catch
Valefish 2011-04-01
  • 打赏
  • 举报
回复
还分层处理吧 每层有个 就已经比较多了
Valefish 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 david_tao 的回复:]
不推荐这么干,因为异常处理耗资源
[/Quote]
+1
porschev 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyazhe 的回复:]

问对问题很关键。能不能的问题自己试试就有答案了。你该问:这么做好么?
[/Quote]


可以。。但可以不用嵌套。。。

一个try可以多个catch...
子夜__ 2011-04-01
  • 打赏
  • 举报
回复
尽量不要这么做。。
兔子-顾问 2011-04-01
  • 打赏
  • 举报
回复
问对问题很关键。能不能的问题自己试试就有答案了。你该问:这么做好么?
zilong4460072 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 learning8899 的回复:]
请教个问题,try catch里面可以套try catch吗?
比如
try
{
....
try
{
}
catch{};
....
}
catch
{
}
里面套个try catch主要是因为里面的异常就是出现了,也没有什么大后果,所以打算忽略掉
[/Quote]
可以,但是最好把Catch都放在一起 这样清晰明了

try
{
...
}
catch(IOException ioex)
{
...
}catch(NullPointerException nullPEx)
{
...
}catch(Exception ex)
{
...
}

父级的Exception放在后面
加载更多回复(8)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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