社区
C#
帖子详情
try..catch 问题
ouwusong
2007-01-04 10:37:25
那位大哥给我讲一下
try
{
...
}
catch(Exception ex)
{
throw ex;
}
与不加try..catch有什么区别,主要是弄不懂捕获异常后什么都不做,然后
重新抛出有什么用处?
...全文
568
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("除法运算异常"); } ..
聊聊
try
...
cat
ch
与 then...
cat
ch
适合于同步代码,能够捕获代码块中抛出的异常。then和
cat
ch
:用于处理 Promise 的结果和错误,适合异步操作。结合
try
...
cat
ch
:提供了清晰的异步错误处理方式,增强了代码的可读性。在实际开发中,选择哪种方式取决于代码的性质(同步或异步)以及个人或团队的编码风格。
深入理解
try
...
cat
ch
语句
/* 深入
try
..
cat
ch
1、
cat
ch
后面的小括号中的类型可以是具体的异常类型,也可以是该异常类型的父类型。 2、
cat
ch
可以写多个。建议
cat
ch
的时候,精确的一个一个处理。这样有利于程序的调试。 3、
cat
ch
写多个的时候,从上到下,必须遵守从小到大。 */ // JDK8的新特性!
try
{ //创建输入流 FileInputStream fis = new FileInputStr...
使用
try
...
cat
ch
语句处理异常
一 介绍 JavaScript从Java语言中引入了
try
...
cat
ch
...finally功能,具体语法如下。 语法:
try
{ somestatements; }
cat
ch
(exception e) { somestatements; }finally { somestatements; }
try
:捕捉异常关键字。
cat
ch
:捕捉异常关键字。
嵌套
try
...
cat
ch
语句
一 介绍 如果在
cat
ch
区域中也发生了异常,可以在
cat
ch
区域中再使用一组
try
...
cat
ch
语句,即嵌套使用
try
...
cat
ch
语句。 语法:
try
{ somestatements; }
cat
ch
(exception) {
try
{ somestatments; }
cat
ch
(exception) { somestatments;
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章