当我们在写代码时,难免会遇到一些异常情况,如:文件读取失败、网络连接超时等等。这时,我们需要使用到异常处理机制,来解决这些问题并保证程序的正常运行。而C#中的try...catch就是一种常用的异常处理机制。
try...catch的基本语法
如图所示,try代码块中包含可能会发生异常的代码,catch代码块用来捕获异常并处理异常。如果try代码块中的代码成功执行,那么catch代码块将不会执行。
try
{
// 可能会出现异常的代码
}
catch (Exception ex) // Exception为异常类型,ex为异常对象
{
// 处理异常的代码
}
上述代码中,catch语句中的Exception为异常类型,它是所有异常类型的基类。若不清楚具体发生了什么异常,就可以使用Exception来捕获异常。
try...catch的使用
示例1:文件读取异常
try
{
StreamReader sr = new StreamReader("example.txt");
Console.WriteLine(sr.ReadToEnd());
sr.Close();
}
catch (FileNotFoundException ex)
{
Console.WriteLine("文件不存在!");
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
上述代码中,我们通过StreamReader来读取文件,并使用try...catch捕获了FileNotFoundException类型的异常和其他异常(如:IOException等)。
示例2:除法运算异常
int a = 6, b = 0;
try
{
int c = a / b;
Console.WriteLine(c);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("除数不能为0!");
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
在这个示例中,我们尝试对a和b进行除法运算,其中b为0,这就会产生DivideByZeroException类型的异常。我们使用try...catch捕获这个异常并进行处理。
常见的面试题
- try...catch是什么?有哪些常用的异常类型?
答:try...catch是一种异常处理机制,它可以对可能出现异常的代码进行捕获和处理。常见的异常类型包括:ArgumentNullException、ArgumentException、DivideByZeroException、FileNotFoundException等。
- try...catch和throw有什么区别?
答:try...catch捕获异常并处理异常,而throw用于抛出自定义异常,由调用者进行捕获和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中try…catch的使用与常见面试题分享 - Python技术站