日期:2014-05-18  浏览次数:22621 次

请问try catch里面可以套try catch吗?
请教个问题,try catch里面可以套try catch吗?
比如
try
{
  ....
  try
  {
  }
  catch{};
  ....
}
catch
{
}
里面套个try catch主要是因为里面的异常就是出现了,也没有什么大后果,所以打算忽略掉

------解决方案--------------------
可以啊。怎么说我回复太短
------解决方案--------------------
当然可以嵌套

不过你可以通过不同catch来处理不同异常
例如

C# code


try{
    //可能发生异常的操作
}catch(IOException ioex)
{
    //发生IOException 时的处理
}catch(NullPointerException nullPEx)
{
    //发生空指针异常的处理
}catch(Exception ex)
{
    //发生其他异常时的处理操作。
}

------解决方案--------------------
不推荐这么干,因为异常处理耗资源
------解决方案--------------------
这是没有问题的!注意别给自己套晕了就成。最多套3-5层就可以了。。多了代码就乱了。
------解决方案--------------------
可以。

这还有个专门的名词,叫结构化异常处理(SEH)。
------解决方案--------------------
可以。
------解决方案--------------------
探讨
请教个问题,try catch里面可以套try catch吗?
比如
try
{
....
try
{
}
catch{};
....
}
catch
{
}
里面套个try catch主要是因为里面的异常就是出现了,也没有什么大后果,所以打算忽略掉

------解决方案--------------------
问对问题很关键。能不能的问题自己试试就有答案了。你该问:这么做好么?
------解决方案--------------------
尽量不要这么做。。
------解决方案--------------------
探讨

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

------解决方案--------------------
探讨
不推荐这么干,因为异常处理耗资源

------解决方案--------------------
还分层处理吧 每层有个 就已经比较多了
------解决方案--------------------
嵌套是可以的,但是正像楼上几位说的,不建议这么做
你可以多几个catch
------解决方案--------------------
可以的
------解决方案--------------------
结贴给分吧。
------解决方案--------------------
可以使可以的,但是不推荐这么做
------解决方案--------------------
探讨
引用:

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



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

一个try可以多个catch...

------解决方案--------------------
9楼正解

一个try可以多个catch,不建议嵌套使用
------解决方案--------------------
可以,但推荐一个try 多个catch
------解决方案--------------------
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