【C#之Try……Catch实例】

前言:

这个阶段我在学习设计模式,今天准备实战了,遇到了try……catch,在学C#的时候还记忆深刻呢?现在不懂得期中的道理了,温故知新,知识需要反复!今天,从实例中在温故一下Try……Catch,而顺道说说try……catch……finally 。

中心:

在C#中Try……Catch异常处理中,如果没有TRY,程序直接就会崩溃,如果没有Catch,异常总是向上层抛出或中断程序。 catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。


(一)构造

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="white-space:pre">	</span>try
            {
                //有可能发生错误的程序块
            }
            catch (Exception)
            {
                //当发生错误的时候才会执行的代码块
                throw;
            } </span></span></span>

(二)实例中运用

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace count
{
    class Program
    {
        static void Main(string[] args)
        
        {
            try
            {
                Console.Write("请输入数字A:"); //显示请输入数字A:
                string strNumberA = Console.ReadLine(); //获取用户输入的信息
                Console.Write("请输入运算符(+、-、*、/):");//显示输入运算符
                string strOperate = Console.ReadLine();//获取用户输入的预算符
                Console.Write("请输入数字B:");//请输入数字B:
                string strNumberB = Console.ReadLine();//请输入数字B:
                string strResult = "";//运算结果
                switch (strOperate )
                {
                    case "+": //分支语句“+”运算
                        strResult = Convert.ToString(Convert.ToDouble
                            (strNumberA) + Convert.ToDouble(strNumberB));

                        break; //结束当前程序
                    case "-"://分支语句“-”运算
                         strResult = Convert.ToString(Convert.ToDouble
                            (strNumberA) - Convert.ToDouble(strNumberB));
                         break; //结束当前程序
                    case "*"://分支语句“*”运算
                        strResult = Convert.ToString(Convert.ToDouble
                           (strNumberA) * Convert.ToDouble(strNumberB));

                        break; //结束当前程序
                    case "/"://分支语句“/”运算
                        if (strNumberB != "0")//如果数字B不等于0
                         strResult = Convert.ToString(Convert.ToDouble //执行运算
                            (strNumberA) / Convert.ToDouble(strNumberB));
                        else  //否则
                            strResult = "除数不能为0";//结果为“除数不能为0”
                        break; //结束当前程序

                }
                Console.WriteLine("结果是" + strResult);//显示结果
                Console.ReadLine();

            }
            catch (Exception ex)//处理错误信息
            {

                Console.WriteLine("您的输入有错:" + ex.Message);//显示错误信息
            }
          
       }
    }
}</span></span></span>
(三)运行结果
1.正常:                                                                       2.除数为0
    3.输入错误


(四)Try……Catch……finally(实际上finally可加可不加)

<span style="font-size:18px;"><span style="font-size:18px;"> try
            {
                 //有可能发生错误的程序块
            }
            catch (Exception)
            {
                //当发生错误的时候才会执行的代码块
                throw;
            }
            finally
            { 
                //无论是否发生错误都会执行的代码块
            }</span></span>

(五)在上面的实例中加入finally代码

<span style="font-size:18px;"><span style="font-size:18px;"> finally
           {
          Console.WriteLine("谢谢您的使用!欢迎下次光临!");
           }</span></span>
运行效果:


(六)补充

可加入下面代码,进行限度提示
<span style="font-size:18px;"><span style="font-size:18px;"><pre name="code" class="csharp">catch (IndexOutOfRangeException ex)
            {
                Console.WriteLine("Indexoutof异常:" + "不出现异常的限制" + ex.Message);
            }</span></span>


 
 

总结:

  • 不要过多使用 catch。通常应允许异常在调用堆栈中往上传播。
  • 使用 try-finally 并避免将 try-catch 用于清理代码。在书写规范的异常代码中,try-finally 远比 try-catch 更为常用。
关于异常就介绍到这里,如果有问题,欢迎大家指正!

C#中,try-catch是一种错误处理机制。当程序在运行过程中出现异常时,使用try-catch可以捕获并处理这些异常,以避程序的崩溃或产生不可预料的结果。 try-catch语句的基本用法如下: ``` try { // 可能会出现异常的代码 } catch (异常类型1) { // 处理异常类型1的代码 } catch (异常类型2) { // 处理异常类型2的代码 } finally { // 无论是否出现异常都会执行的代码 } ``` 在try编写可能会引发异常的代码,当异常发生时,程序会跳转到对应的catch中,执行相应的异常处理代码。如果没有合适的catch来处理异常,程序会终止执行并抛出异常。finally中的代码无论是否出现异常都会执行。 具体到C#实例中,引用给出了使用try-catch处理异常的示例代码。这段代码通过int.Parse()方法将用户输入的字符串转换为整数,并处理可能的格式错误、溢出和空输入等异常情况。 总而言之,C#中的try-catch语句允许我们捕获并处理异常,以确保程序的稳定性和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C#中的try catch finally用法分析](https://download.csdn.net/download/weixin_38697171/12807576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [C#语法中try-catch的用法](https://blog.csdn.net/weixin_41883890/article/details/124725452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [C# try catch](https://blog.csdn.net/CAO11021/article/details/107672348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值