社区
C#
帖子详情
try..catch 问题
ouwusong
2007-01-04 10:37:25
那位大哥给我讲一下
try
{
...
}
catch(Exception ex)
{
throw ex;
}
与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后
重新抛出有什么用处?
...全文
580
16
打赏
收藏
try..catch 问题
那位大哥给我讲一下 try { ... } catch(Exception ex) { throw ex; } 与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后 重新抛出有什么用处?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superxiaomm
2007-01-04
打赏
举报
回复
重新抛出可以让上面去处理,你本block不处理不表示上面也不处理.
如果是比较共用的exception或者不是比较详细的exception,外面的frame都应该会处理的.这样设计比较合理
hongyelzg
2007-01-04
打赏
举报
回复
让上级去处理这个异常有时会很有用的.所以在捕获异常后重新抛出
hongyelzg
2007-01-04
打赏
举报
回复
一般捕获到异常的处理方法:
1.什么也不做,直接忽略异常
2.直接处理该异常(比如说执行些操作,弹出个人性化的对话框,提示出的问题)
3.重试操作,达到次数时处理异常
4.重新抛出异常,让上级去处理异常
5.记录到日志,以便查看.
Compass_
2007-01-04
打赏
举报
回复
在调试的时候,如果没有自己去try,很有可能调试的时候看不到exception的内容。
再则就是你看到的本身就是一个demo,它表达的意思是一定要去try,给出的处理只是一个示范性的,当然你可以自己加别的异常处理逻辑。
写代码的时候加入适当的异常处理肯定是有好处的,事先将代码骨架放在那里,合适的时候再去写异常处理逻辑,这样更方便。
ouwusong
2007-01-04
打赏
举报
回复
我吧重要代码贴出来:微软的demo
1. public System.Data.DataSet Retrieve(string sql)
{
SQL.SqlConnection dbConn = null;
System.Data.DataSet ds = new System.Data.DataSet();;
try
{
dbConn = new SQL.SqlConnection (this.sConnection);
SQL.SqlCommand dbCmd;
dbCmd = new SQL.SqlCommand(sql, dbConn);
SQL.SqlDataAdapter dbAdapter;
dbAdapter = new SQL.SqlDataAdapter(dbCmd);
dbConn.Open();
dbAdapter.Fill(ds);
}
catch(Exception ex)
{
throw ex;
}
finally
{
try{ dbConn.Close(); }
catch{}
}
return ds;
}
2.集中捕获的语句为
Application.ThreadException += new ST.ThreadExceptionEventHandler(App.OnAppException);
// setup cleanup routine for normal app shutdown...
Application.ThreadExit += new System.EventHandler(App.OnAppExit);
既然在1中捕获的ex不做什么处理就throw,最终会由2中ThreadException 来集中处理,如果不捕获的话同样可以有2中的ThreadException 集中处理,那加它干嘛?
灰太狼
2007-01-04
打赏
举报
回复
在windows程序中,如果程序抛出的异常被系统捕获,就会提示程序出错,然后程序自动关闭,所以你一定要自己捕获异常,防止程序自动关闭,这是try catch的一个用途,再一个就是自定义错误信息。
ouwusong
2007-01-04
打赏
举报
回复
回 (ittt)
如果不加同用由它外层可以处理,那这不就没用了,我是从微软讲座中的demo中看到这个语句
ouwusong
2007-01-04
打赏
举报
回复
可能我没说清楚,我的疑惑在,捕获异常后就做一个重新抛出
相同异常的动作,别的啥都没有,这样由它的上怡层去捕获异常,
如果不加这个处理,有异常的话同样有它上一层处理,而且它抛出的
是一个相同的异常,那这个try..cacth快有什么作用?
青官司
2007-01-04
打赏
举报
回复
是抛出相同的异常 但这次抛出后就是被外层的try捕获了
用这种方法 就可以集中处理异常
ouwusong
2007-01-04
打赏
举报
回复
cath快中就一个throw ex;
xray2005
2007-01-04
打赏
举报
回复
获异常后可以显示你自定义的错误信息
使得用户获得教好的体验!
ouwusong
2007-01-04
打赏
举报
回复
问题是try 后又重新抛出相同的异常,
glacier111
2007-01-04
打赏
举报
回复
你也可以在报错后(就是在Catch里)实现一些功能操作
fencole
2007-01-04
打赏
举报
回复
获异常后可以显示你自定义的错误信息
glacier111
2007-01-04
打赏
举报
回复
用了try..catch 页面上不会报错
try
...
cat
ch
...语法
语法一定要简练,最重要的是功能说明和使用案例!...2、需要进行异常处理的...3、尽管你的代码有bug,但你想让它继续执行而不报错,就可以用
try
...
cat
ch
... 自己进行异常处理。4、上面基本就够用了,还不懂,请往下...
Web前端入门:JavaScript 哪些地方需要
try
...
cat
ch
异常捕获
任何事物都是犹过不及,合理使用可以有效提高代码健壮性,但过渡使用也容易造成代码冗余,所以...前端路引Web前端入门第 80 问:JavaScript 哪些地方需要
try
...
cat
ch
异常捕获 - 前端路引 - 博客园JNPF快速开发平台。
try
...
cat
ch
..finally的区别,提升代码健壮性
try
...
cat
ch
..finally的区别,提取代码健壮性
java+
cat
ch
块不执行_Java异常处理机制:
try
...
cat
ch
...的执行流程
Java异常处理机制:
try
...
cat
ch
...的执行流程在项目中遇到
try
...
cat
ch
...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解。所以现在来总结Java异常处理机制的处理流程:1.异常处理的机制...
使用
try
...
cat
ch
语句处理异常
JavaScript从Java语言中引入了
try
...
cat
ch
...finally功能,具体语法如下。 语法:
try
{ somestatements; }
cat
ch
(exception e) { somestatements; }finally { somestatements; }
try
:捕捉异常...
C#
111,121
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章