c# 异常,try catch throw

1,抛出异常throw,捕捉异常catch区别,分别什么时候用2.什么时候会用到try,try包含的范围,或者说try开始的起点。是不是只要方法里执行动作都要被包含在tr... 1,抛出异常throw, 捕捉异常catch 区别, 分别什么时候用
2. 什么时候会用到try,try 包含的范围,或者说 try 开始的起点。是不是只要方法里执行动作都要被包含在try 里?
展开
 我来答
帐号已注销
2012-11-22 · TA获得超过260个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:62.8万
展开全部
try..catch..throw是C#里面处理异常的机制;
我们在编码时,无论是在业务逻辑处理还是数理运算,都有可能有想不到的情况发生,比如在做基本算数运算时,可能出现溢出或者除零等问题,那么这就需要一种机制来处理这种异常,增强软件的性能和稳定,try catch throw 就是用来处理异常的。

try 代码块中一般存放业务处理逻辑代码,比如尝试打开数据库连接时、处理业务运算时等,放在try内部的所有代码,一旦出现未知的异常情况,Try代码块中的代码便终止运行,而是跳到catch中,如果不放在Try内部,一旦出现异常,程序将面临崩溃。

catch代码块和try匹配出现,用于处理try块中出现的异常。
try后可以有多个catch,根据catch(异常类型)中的异常类型执行最匹配的一个;
try后可以不跟catch,但必须有跟着finally(try后有catch时也可以跟着finally)

finally:无论代码正常执行还是出现异常,该代码块中的代码都肯定执行,所以可以放一些关闭数据库连接或者释放内存的代码在这里;

throw:将异常抛出到最近的上级catch块中,比如:
try{
try{}
catch{
throw...;//异常会被抛出到A代码块处进行处理

}

}catch{
//A代码块

}

什么时候用try呢?try使用的多了或许能有效的避免系统因异常而崩溃,但是过多的使用try会降低系统性能,给你介绍一下try在程序运行时的大体过程:
当程序运行到try起点时,会在栈中存放一个地址记录入口点,当try执行完毕后要找到入口点,所以是有开销的。

给你个建议:
设计到运算、逻辑处理、业务运算等操作时,一定使用异常处理,定义或实例化变量时不建议使用;

互相学习 !
Dy
peng111805
2012-11-22
知道答主
回答量:41
采纳率:0%
帮助的人:10.5万
展开全部
抛出异常,一般是写自己的类的时候,接收到了不合理的数据,我们会抛出一个异常,通常这个异常类是自己写的,抛出异常最终还是要自己捕获,不然程序会崩溃,捕获异常:就是在程序运行时出现问题的时候不让程序死掉,在有可能出问题的地方,一般都是加上 try
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄工的控件库
2012-11-22 · TA获得超过5732个赞
知道小有建树答主
回答量:1644
采纳率:50%
帮助的人:517万
展开全部
throw的作用是当代码执行到此处时认为的让程序出错,出错原因是你指定的内容
catch的作用是try包含的内容运行出错时,catch扑捉到try里面出错的原因,至于对于这个错误你怎么操作就放在catch里,你可以把错误写日志,messagebox输出等等

2、当你感觉某一段代码运行的时候错误几率比较大,容易受到运行环境或者其他因素影响出错的时候用try把他包含起来,只要你想用,在方法里随时可以用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
againinput4
推荐于2016-11-13 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:642万
展开全部
没怎么用过throw。用过try和catch。
1.throw,等你程序比如检测到一个非法的值,则可以写代码,专门throw,抛出这个异常(后期会有人捕获并处理的)
2. catch,我是和try一起用的。
即:
try{
做你要做的事情,
尤其是可能会出错的某些事情
比如通过网络访问某个地址
则可能出现超时等情况,此时最好就是把相关代码放到此try中
}
catch()
{
然后在catch中捕获,处理对应的异常
比如是超时的异常,就弹出个对话框,告诉用户超时了,之类的
}

3.总之,把可能,容易出错的代码,放到try中,
然后在catch中写相关的错误的处理的代码。即可。

感兴趣的话,用google搜:
crifanLib.cs
里面有我写的各种函数,其中有用到try和catch。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式