C#实训Day014:C#方法的调试中的异常处理语句

2025-05-04 02:47:00

1、1.使用throw语句抛出异常throw语句用于主动引发一个异常,在特定的情况下自动抛出异常。throw语句的基本格式:throwObject(Object:所要抛出的异常对象)这个异常对象是派生自Sytem.Exception类的对象,下面这个代码从执行上是没有问题的,但是在逻辑上的不对的,b=0是没有意义的。

C#实训Day014:C#方法的调试中的异常处理语句

2、那么我们如何防止用户输入将b=0时自动抛出异常呢,那么我们就要在代码中添加一段throw语句,让其主动引发异常,抛出异常状况。DivideByZeroException:尝试将整数或Decimal值除以零时引发的异常。static void Main(string[] args){Console.WriteLine("SUM1: " + MyInt(4, 2));Console.WriteLine("SUM2: " + MyInt(4, 0));Console.ReadKey();}public static int MyInt(int a, int b){int num;if (b == 0){throw new DivideByZeroException(); // 抛出DivideByZeroException类的异常return 0;}else{num = a / b;return num;}

C#实训Day014:C#方法的调试中的异常处理语句

3、这时当我们再次执行代码时,第二个输出就应该会弹出异常提示了,而且提示我们错误出现在什么位置。

C#实训Day014:C#方法的调试中的异常处理语句

4、2. 使用try.....catch语句捕捉异常try.....catch语句允许在try后面的大括号{}中放置可能发生异常的程序代码,并对这些程序代码进行监控,而catch后面的大括号{}中则放置处理错误的程序代码,以处理程序发生的异常。try.....catch语句的基本格式:try{被监控的代码;//可能包含异常的执行过程}catch(异常类名,异常变量名)//Exception捕获异常{异常处理;}

C#实训Day014:C#方法的调试中的异常处理语句

5、当我们在程序中输入一个分数值值,程序会正常执行代码,当我们在程序中输入字符串时,程序就会为我们检测到错误,然后输出catch中的语句

C#实训Day014:C#方法的调试中的异常处理语句

6、3.使用try.....catch.....finally语句捕捉异常将finally语句与try......catch语句结合可以形成try......catch......finally语句,finally语句同样以区块的形式存在,它被放在所有try....catch语句的最后面,程序执行完毕,最后都会调到finally语句区块,执行其中的代码。try.....catch......finally语句的基本格式:try{被监控的代码;//可能包含异常的执行过程}catch(异常类名,异常变量名)//Exception捕获异常{异常处理;}finally{程序代码;//最终会做甚么}

C#实训Day014:C#方法的调试中的异常处理语句

7、注意:1)try....catch语句可以包含多个catch语句,但程序只执行一个罕铞泱殳catch语句中的信息,其他的catch语句被忽略了。2)在catch语句中,异常类名必须为System.Exception或从System.Exception派生的类型。当catch语句指定了异常类名和异常变量名后,就相当于声明了一个具有给定名称和类型的异常变量,此异常变量表示当前正在处理的异常。还是上面的例子,这里通过try...catch...finally语句来捕捉整数除零错误static void Main(string[] args){Console.WriteLine("SUM1: " + MyInt(4, 2));Console.WriteLine("SUM2: " + MyInt(4, 0));Console.ReadKey();}public static int MyInt(int a, int b){int num;try //try...catch语句{num = a / b; //除0引发错误return num;}catch (Exception err){Console.WriteLine("{0}", err.Message); //显示错误信息throw;}finally{num = a / b; } }

C#实训Day014:C#方法的调试中的异常处理语句
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢