C#中如何处理异常?怎么使用try-catch语句?
使用try-catch来对代码中容易出现异常的语句进行异常捕获。
try
{
可能出现异常的代码;
}
catch
{
出现异常后需要执行的代码;
}
注:
1、在执行过程中,如果try中的代码没有出现异常,那么catch中的代码就不会执行。如果try中的代码出现了异常,则不会继续执行try里面的代码,转而执行catch中的代码。
2、一般在写完整篇代码后才在代码中找可能会出现异常的地方,然后再添加try-catch。
3、在try-catch之间不能含有其他的代码。
扩展资料
导致异常的代码被括在 try 块中。 在其后面紧接着添加一个 catch 语句,以便在 IndexOutOfRangeException 发生时对其进行处理。 catch 块处理 IndexOutOfRangeException,并引发更适当的 ArgumentOutOfRangeException 异常。
为给调用方提供尽可能多的信息,应考虑将原始异常指定为新异常的 InnerException。 因为 InnerException 属性是只读,所以必须在新异常的构造函数中为其赋值。
finally 语句的目的是确保即使在引发异常的情况下也能立即进行必要的对象(通常是保存外部资源的对象)清理。此类清理功能的一个示例是在使用后立即对 FileStream 调用 Close,而不是等待公共语言运行时对该对象进行垃圾回收。
参考资料来源:
try
{
可执行语句块;
}
catch ( Exception e )
{
异常处理语句;
throw;
}
1、try语句块中放置可能存在异常的代码块。若执行try语句块时有异常发生,则程序抛出的异常,由catch语句捕获;若try语句块没产生异常,程序会直接跳出try-catch语句。
2、catch语句块紧跟在try语句块后面,它可以捕获try语句块中抛出的异常。注意catch关键字后有一对小括号,小括号中需放置异常类参数,参数名是可省略的。当try语句抛出异常时,抛出的异常类型会与catch语句中的异常类型进行匹配,若匹配成功,则执行catch语句块中的内容。
3、Exception是所有异常类的父类,它能和所有异常类匹配。前一小节抛出的IndexOutOfRangeException异常类也是Exception的子类。需注意的是:如果catch语句块不带参数,那么catch语句也能捕获所有异常。
4、throw关键字表示抛出一个异常,可省略。
同时try-catch语句通常和finally语句一起使用,具体的使用方法可以参考秒秒学网站讲解异常的那一章,其实上面的内容我也是从那里学来的。