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

learning8899 2011-04-01 01:39:50
请教个问题,try catch里面可以套try catch吗?
比如
try
{
....
try
{
}
catch{};
....
}
catch
{
}
里面套个try catch主要是因为里面的异常就是出现了,也没有什么大后果,所以打算忽略掉
...全文
8158 28 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
结贴给分吧。
18妹 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)
通过本课程学习您可以学习到Dart语言如下知识:第1章 Dart语言概述:Dart语言简介、Dart语言支持平台开发、Flutter为什么选择Dart语言。第2章 开发环境搭建:下载Dart SDK、Windows下安装Dart SDK、macOS下安装Dart SDK、Visual Studio Code开发工具、IntelliJ IDEA开发工具。第3章 完成个Dart程序:动动手写一个HelloWorld、Dart源代码文件组织结构、Visual Studio Code调试Dart代码、IntelliJ IDEA调试Dart代码。第4章 Dart语法基础:标识符、关键字、变量、常量、注释、库。第5章 Dart数据类型:数值类型、字符串、数据类型相互转换、布尔类型和枚举类型第6章 运算符:算术运算符、算术赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、类型检查运算符。第7章 控制语句:分支语句、循环语句、跳转语句。第8章 函数:函数声明、可选参数、头等函数(first-class function)、匿名函数。第9章 类:类声明、getter和setter访问器、构造函数、静态变量和静态方法、级联符号。第10章 继承与多态:Dart中的继承实现、调用父类构造函数、成员变量的覆盖(Override)、方法的覆盖(Override)、多态、混入(Mixins)。第11章 抽象类与接口:抽象类、接口、Dart中隐式接口、实现接口。第12章 数据容器:List容器、Set容器、Map容器、泛型。第13章 异常处理:捕获异常、try-on捕获异常、try-catch捕获异常、try-on-catch捕获异常、使用finally代码块、手动抛出异常、自定义异常类。第14章 异步编程:Dart异步处理机制、案例:同步函数实现读取文件、案例:异步函数实现读取文件、Future对象。  

110,547

社区成员

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

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

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