c# 异常,try catch throw

1,抛出异常throw, 捕捉异常catch 区别, 分别什么时候用
2. 什么时候会用到try,try 包含的范围,或者说 try 开始的起点。是不是只要方法里执行动作都要被包含在try 里?

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
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-22
抛出异常,一般是写自己的类的时候,接收到了不合理的数据,我们会抛出一个异常,通常这个异常类是自己写的,抛出异常最终还是要自己捕获,不然程序会崩溃,捕获异常:就是在程序运行时出现问题的时候不让程序死掉,在有可能出问题的地方,一般都是加上 try
第2个回答  2012-11-22
throw的作用是当代码执行到此处时认为的让程序出错,出错原因是你指定的内容
catch的作用是try包含的内容运行出错时,catch扑捉到try里面出错的原因,至于对于这个错误你怎么操作就放在catch里,你可以把错误写日志,messagebox输出等等

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

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

感兴趣的话,用google搜:
crifanLib.cs
里面有我写的各种函数,其中有用到try和catch。本回答被提问者和网友采纳

c# 异常,try catch throw
try..catch..throw是C#里面处理异常的机制;我们在编码时,无论是在业务逻辑处理还是数理运算,都有可能有想不到的情况发生,比如在做基本算数运算时,可能出现溢出或者除零等问题,那么这就需要一种机制来处理这种异常,增强软件的性能和稳定,try catch throw 就是用来处理异常的。try 代码块中一般存放...

C#中如何处理异常?怎么使用try-catch语句?
异常处理语句;throw;} 1、try语句块中放置可能存在异常的代码块。若执行try语句块时有异常发生,则程序抛出的异常,由catch语句捕获;若try语句块没产生异常,程序会直接跳出try-catch语句。2、catch语句块紧跟在try语句块后面,它可以捕获try语句块中抛出的异常。注意catch关键字后有一对小括号,小括号中...

在C#中,异常抛出,throw具体是什么意思 ?新手 急!!!
throw一般都是自定义的异常,系统自定义中很少用到throw异常。例如1:try { } catch(exception ex){ throw ex;\/\/使用try catch语句一般都是说,在try括号中容易引发不可预知的异常,例如读取文件 \/\/是的文件流打开失败等,这样就一定会产生异常,在这里如果你用throw,这个 \/\/异常就会抛给系统,...

C#中抛出异常的区别throw 和 throw new Exception
C#中处理异常时,通常使用try-catch结构。Visual Studio的默认模板中,try部分会自动添加一个catch块,接收未指定参数的Exception。这种做法在没有具体异常源头时,仅能捕获异常但无法指出具体来源,catch会认为异常已被处理。如果在catch中抛出新的异常,例如`throw new Exception`,则会创建一个新的异常对象...

c#中在dll内使用try catch捕捉到异常如何把此异常抛转到引用次dll的win...
要抛出异常,那就代表你不处理了,那直接 throw new Exception( exmessage);

c#中throw用法
强制抛出一个异常,相当于人为的制造一个异常,使得try catch生效。比如 try { throw new Exception();} catch { MessageBox.Show("自己抛出的异常");}

C#中try catch捕捉到问题之后 后面的代码还继续执行吗
catch{} 这样子是会执行的,catch{throw} 这样子是不会执行的

c#描述异常处理语句try、catch、finally执行时的相互关系
假如try中产生了异常,那么try从产生异常开始到try结束的这段代码将不会执行,转而去执行catch.finally是try执行完后执行(没发生异常)或者在catch后执行(发生了异常),也就是说finally无论怎么样,都会执行.3个连起来就像平时口语中的 "(try)假如^^^,(catch)就^^^,(finally)最后^^^ ...

常见的C#异常及其修复方法
了解如何使用try、catch、finally关键字和throw关键字,可以帮助您更有效地处理异常。以下是常见C#异常的修复方法:1. System.NullReferenceException:确保在调用方法或属性之前,对象已被正确初始化且非空。如果可能,抛出System.ArgumentNullException以提醒调用者提供非空参数。2. System.IndexOutOfRange...

在c#中,怎样在程序中用throw来抛出自定义的异常?急啊,谢谢了啊。
急!!!例如,在程序中输入整型数字,当位数在3位外和是负数是抛出异常。主要是用throw来自定义异常。

相似回答