社区
C#
帖子详情
try..catch 问题
ouwusong
2007-01-04 10:37:25
那位大哥给我讲一下
try
{
...
}
catch(Exception ex)
{
throw ex;
}
与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后
重新抛出有什么用处?
...全文
565
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
的三种使用
异常格式的组合分为三种,
try
...
cat
ch
、
try
...
cat
ch
...finally、
try
...finally。 (1)
try
{ System.out.println("除法运算:" + (10/0)); }
cat
ch
(ArithmeticException e) { e.printStackTrace(); ...
Javascript错误处理——
try
...
cat
ch
Javascript错误处理——
try
…
cat
ch
无论我们编程多么精通,脚本错误怎是难免。可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因。 通常,当发送错误时脚本会立刻停止,打印至控制台。 ...
异常的处理(
try
.....
cat
ch
)
try
...
cat
ch
和throws,自定义异常
Golang :
Try
...
Cat
ch
...
简介 Go语言中抓取异常,当你觉得代码某部分很难避免或者可能出现异常的时候, 像C++、Java等语言都有
Try
...
Cat
ch
, 于是乎你想使用,怎么办呢.....
Try
...
Cat
ch
...实现 /* 抓取到的错误,
cat
ch
出来 */ func
cat
ch
Er..
Java之
try
...
cat
ch
异常处理
一、异常处理的格式之
try
...
cat
ch
1.
try
(用来检测异常)...
cat
ch
(用来捕获异常)...finally(释放资源),
cat
ch
可以有多个,跟哪个匹配上则执行哪个里的语句,3种搭配格式如下: /*finally的特点:若程序开始执行
try
...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章