社区
C#
帖子详情
try..catch 问题
ouwusong
2007-01-04 10:37:25
那位大哥给我讲一下
try
{
...
}
catch(Exception ex)
{
throw ex;
}
与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后
重新抛出有什么用处?
...全文
570
16
打赏
收藏
try..catch 问题
那位大哥给我讲一下 try { ... } catch(Exception ex) { throw ex; } 与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后 重新抛出有什么用处?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
的三种使用
1. 当程序运行时,会遇到各种各样的错误,导致程序退出,这些错误在Java中被统一称为异常。异常格式的组合分为三种,
try
...
cat
ch
、
try
...
cat
ch
...finally、
try
...finally。 (1)
try
{ System.out.println("除法运算:" + (10/0)); }
cat
ch
(ArithmeticException e) { e.printStackTrace(); System.out.println("除法运算异常"); } ..
Javascript错误处理——
try
...
cat
ch
Javascript错误处理——
try
…
cat
ch
无论我们编程多么精通,脚本错误怎是难免。可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因。 通常,当发送错误时脚本会立刻停止,打印至控制台。 但
try
...
cat
ch
语法结构可以捕获错误并可以做更多的事情,而不是直接停止。 “
try
…
cat
ch
” 语法
try
...
cat
ch
结构有两个语句块,即
try
,然
js深度了解下
try
...
cat
ch
...finally
try
...
cat
ch
语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。
Java之
try
...
cat
ch
异常处理
一、异常处理的格式之
try
...
cat
ch
1.
try
(用来检测异常)...
cat
ch
(用来捕获异常)...finally(释放资源),
cat
ch
可以有多个,跟哪个匹配上则执行哪个里的语句,3种搭配格式如下: /*finally的特点:若程序开始执行
try
,并且在finally之前JVM并未退出,则finally中的语句一定会执行。 finally的作用:用户释放资源...
java+
cat
ch
块不执行_Java异常处理机制:
try
...
cat
ch
...的执行流程
Java异常处理机制:
try
...
cat
ch
...的执行流程在项目中遇到
try
...
cat
ch
...语句,因为对Java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解。所以现在来总结Java异常处理机制的处理流程:1.异常处理的机制如下:在方法中用
try
...
cat
ch
... 语句捕获并处理异常,
cat
ch
语句可以有多个,用来匹配多个不同类型的异常。对于处理不了的异常或者要转型的异常...
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章