MST
星途 面试题库

面试题:C#中try - catch语句如何捕获特定类型异常

在C#中,假设有一个方法可能会抛出`DivideByZeroException`和`FormatException`,请写出使用try - catch语句捕获这两种特定类型异常并分别进行处理的代码示例,同时说明捕获特定类型异常的好处。
46.1万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试
class Program
{
    static void Main()
    {
        try
        {
            // 可能抛出DivideByZeroException或FormatException的代码
            int result = 10 / 0; // 这里会抛出DivideByZeroException
            int num = int.Parse("abc"); // 这里会抛出FormatException
        }
        catch (DivideByZeroException ex)
        {
            Console.WriteLine($"捕获到除零异常: {ex.Message}");
        }
        catch (FormatException ex)
        {
            Console.WriteLine($"捕获到格式异常: {ex.Message}");
        }
    }
}

捕获特定类型异常的好处:

  1. 针对性处理:可以针对不同类型的异常编写不同的处理逻辑,使程序的异常处理更加准确和灵活。比如在上述代码中,对于除零异常和格式异常可以分别采取不同的修复措施或提示信息。
  2. 避免过度捕获:如果只使用一个通用的catch块捕获所有异常,可能会捕获到一些不应该在当前位置处理的异常,导致错误处理不当。而捕获特定类型异常可以精确处理预期的异常,不影响其他类型异常的正常处理流程。
  3. 代码可读性:捕获特定类型异常使代码结构更加清晰,从catch块的类型就能明确知道这段代码是专门处理哪种异常情况,提高了代码的可读性和可维护性。