C# —— try catch

代码出现错误的两种情况

编译错误: 编译不通过,只要是编译不通过 铁定执行不了,例如出现语法错误(少符号、中英文错误 爆红);
        运行时候的错误: 程序在运行的期间出现的逻辑错误,例如(数组越界了 格式转换错误等)

异常代码: 例如除数如果为0的情况 或者不同类型转换的时候出的错 

try和catch

try尝试执行代码 有可能出现错误
catch 捕获错误  

try catch 可以捕获多个错误,try...cath...cath 
如果捕获不同类型的错误 需要在catch时候添加不同类型的对象 FormatException 格式错误的类型; OverflowException超出范围

inputNum:
    Console.WriteLine("请输入一个数字");
    try
    {
        string s = Console.ReadLine();
        sbyte a = sbyte.Parse(s);//把输入转成整数 如果是s 不能转换,
        Console.WriteLine("a的三次方"+Math.Pow(a,3));
    }
    catch(FormatException)
    {
        // e 错误对象
        // e.Message 错误的信息 : 输入的字符串格式不正确
        Console.WriteLine("代码报错输入的格式不正确");
        goto inputNum;
    }
    catch(OverflowException)
    {
        Console.WriteLine("代码报错:超出了有效数字范围");
        goto inputNum;
    }
### C# 中 `try...catch` 的使用方法 在 C# 编程语言中,`try...catch` 结构用于处理可能出现的异常情况。通过这种方式可以确保程序即使遇到错误也能继续正常运行而不至于崩溃。 #### 基本结构 基本形式如下所示: ```csharp try { // 可能会抛出异常的代码块 } catch (ExceptionType e) { // 处理特定类型的异常 } ``` 当 `try` 语句内的任何部分发生指定类型的异常时,控制权立即转移到相应的 `catch` 子句,在那里可以采取适当措施来解决问题或记录日志等操作[^1]。 对于更复杂的场景,还可以添加多个不同类型的 `catch` 来分别捕捉不同类型异常,并且可以选择性地重新引发异常给调用者知道发生了什么问题: ```csharp public void Method() { try { int x = 0; int sum = 100 / x; // 这里会发生除零异常 } catch (DivideByZeroException ex) { // 特定异常处理器 Console.WriteLine($"捕获到了 DivideByZeroException: {ex.Message}"); throw; // 将当前异常再次向上层传递 } } ``` 另外值得注意的是,如果希望无论是否发生异常都能执行某些清理工作(比如关闭文件流),可以在最后加上 `finally` 部分: ```csharp class MyException { public static void Main() { MyClass mc = new MyClass(); try { mc.Method(); } catch (Exception ex) { Console.WriteLine("此处捕获异常"); } finally { Console.WriteLine("无论如何都会被执行"); } Console.WriteLine("LAST STATEMENT"); } } ``` 这段代码展示了完整的异常处理流程——尝试执行可能失败的操作(`try`),一旦出现问题则进入对应的异常分支(`catch`),而不管怎样都要完成必要的收尾动作(`finally`)[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值