社区
C#
帖子详情
try..catch 问题
ouwusong
2007-01-04 10:37:25
那位大哥给我讲一下
try
{
...
}
catch(Exception ex)
{
throw ex;
}
与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后
重新抛出有什么用处?
...全文
594
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 页面上不会报错
c++
try
cat
ch
问题
以前都是用
try
{}
cat
ch
(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码: 以前都是用
try
{}
cat
ch
(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:
try
{ BYTE* p
ch
; p
ch
= ( ...
java
try
-
cat
ch
以及循环的
问题
今天java基础课上碰到一个比较有意思的
try
-
cat
ch
异常的
问题
,钻研了好久,分享出来大家讨论。 废话不多说,先上一段代码。 public class Demo3 { public static void main(String[] args) { int a = 0; int b = 0; int c = 0; boolean temp = true; Scanne
Java中关于
try
cat
ch
finally中的
问题
总结
关于
try
cat
ch
finally中的几个
问题
基本上都是为了应对面试的,当然有些也是为了加身认识。 一、
try
cat
ch
finally中finally中代码不执行的情况 1.
try
cat
ch
中存在死循环[while(true)死循环],而且代码中不会抛出异常; 正常的代码:类似的例子如Android主线程中Handler的Looper循环线程一样; 程序中...
扯什么
try
-
cat
ch
性能
问题
?
老陈一把拉起我,我直接一个挣脱,“少来,我刚喝过咖啡,你那个倒立洗头,赶紧的!“回过头来,
cat
ch
整个 for 循环和在循环内部
cat
ch
,在不出错的情况下,其实性能差不多。会有性能影响,但是业务上不需要避讳其使用,业务实现优先(只要不是书中举例的那种逆天代码就行),非特殊情况下性能都是其次,有意识地避免大范围的。包裹整个 for 循环性能差不多,但是其实两者本质上是业务处理方式的不同,跟性能扯不上关系,关键看你的业务流程处理。“切,肯定
try
for 性能好,想都不用想,不是的话我倒立洗头!
try
-
cat
ch
语句中的while循环
问题
try
-
cat
ch
语句中的while循环
问题
无限循环
问题
在今天的课堂练习中,我想实现在
try
-
cat
ch
语句中实现循环输入, 即为当输入错误时,捕获异常输出,且可以重新输入。 第一次编写的代码:(此代码存在bug) package 异常; import java.io.Console; import java.util.Scanner; import javax.management.RuntimeErrorException; public class Test4 { public stati
C#
111,129
社区成员
642,532
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章