Nearth===016/c#调试与异常的学习3(try-catch-finally)

try-catch-finally结构:

为什么要用finally块?

程序在运行过程中一旦出现异常会立即转向执行相应catch块中的语句,执行完后接着执行try-catch结构后面的语句。这意味着在出现异常时程序并不是按照既定的顺序执行,而是跳转执行。

为维持系统的有效性和稳定性,必须保证有相应的代码能够“弥补”被跨越代码的工作,主要是完成必要的清理工作(如关闭文件、释放内存等)。这种保证机制可以由带finallytry-catch-finally结构来实现。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class userException:Exception{
        public userException() { }
        public userException(string ms) : base(ms) { }
        public userException(string ms, Exception inner) : base(ms, inner) { }
    }
    class Student {
        private string name;
        private double score;
        public void setInfo(string name,double score) { 
        if(name.Length>8){
            throw (new userException("姓名的长度超过了8个字节!"));
        }
        if(score<0||score>100){
            throw (new userException("非法的分数!"));
        }
        this.name = name;
        this.score = score;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            //Student st = new Student();
            //try {
            //    st.setInfo("adfadfaafafafafadga", 200);
            //}
            //catch(Exception e){
            //    Console.WriteLine("产生的异常:{0}",e.Message);
            //}
            //Console.ReadKey();
            int m = 1;
            int n = 1;
            try
            {
                n = 1 / (m - n);
            }
            catch (Exception e1)
            {//派生类所在的catch块(作用范围小)
                Console.WriteLine("产生异常:{0}", e1.Message);
                return;
                Console.WriteLine("紧跟在return后面····");
            }
            finally{
                Console.WriteLine("只要程序进入了try-catch-finally结构,都会执行finally块!");
            }
            Console.WriteLine("try-catch-finally结构后面的部分····");
            Console.ReadKey();
        }
    }
}


运行结果:



滴滴答答一点一点学习,享受生活的味道~~~~~~~~~~~~~~~~~~~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值