zoukankan      html  css  js  c++  java
  • c#中构建异常处理

    异常是程序运行中发生的错误,异常处理是程序设计的一部分。在c#中异常处理是通过Exception基类进行的,可以创建自己的异常类,但这个类必须是继承自Exception基类。

      异常将导致不完善或者不需要的结果,因此在程序设计中需要处理异常。异常也可以是象"IndexOutOfBounds"这样的错误,这个错误表示程序试图访问数组中部存在的元素;比如数组最大元素为100,当试图访问元素101时就将会发生这样的错误。但这些都是内建的异常,可以直接通过Exception基类处理,如果发生的异常不是内建的,那么就需要我们自己见一个异常处理类,当然这个类时继承自Exception基类。
     
      下面的程序定义了一个自己的异常类:

    using System;
    public class MyException:Exception
    {
    public string s;
    public MyException():base()
    {
    s=null;
    }
    public MyException(string message):base()
    {
    s=message.ToString();
    }
    public MyException(string message,Exception myNew):base(message,myNew)
    {
    s=message.ToString();// Stores new exception message into class member s
    }
    public static void Test()
    {
    string str,stringmessage;
    bool flag=false;
    stringmessage=null;
    char ch=' ';
    int i=0;
    Console.Write("Please enter some string (less than 27 characters) - ");
    str=Console.ReadLine();
    try{
    ch=str[i];
    while (flag==false)
    {
    if (ch=='\r')
    {
    flag=true;
    }
    else{
    ch=str[i];
    i++;
    }
    }
    }
    catch(Exception e){
    flag=true;
    }

    if (i>27)
    {
    stringmessage="你的输入不能超过27个字 !";
    throw new MyException(stringmessage);
    }
    }
    public static void Main()
    {
    try
    {
    Test();
    }
    catch(MyException e)
    {
    Console.WriteLine(e.s);
    }
    }
    }


      上面的代码建立了一个新的继承于Exception基类的异常类叫MyException,这个类有三个过载构造函数,采用三个构造函数的目的十分简单:为了能够过载基类的构造函数。基类中缺省的和已经实现的构造函数必须在继承类中实现,但是我们设计这个类的真正目的是:当用户输入超过27 个字就显示一段错误提示信息,提醒用户输入不能超过27个字。虽然这更像是数据验证而不是一个真正的异常但却是一个比较好的例子,新的异常MyException被函数Test()抛出,通过该方法信息"你的输入不能超过27个字"被main()的catch块获得.
  • 相关阅读:
    Mac下配置远程Linux 服务器SSH密钥认证自动登录
    Linux(centos)系统各个目录的作用详解
    /usr,/usr/local/ 还是 /opt ?
    linux 新建用户、用户组 以及为新用户分配权限
    linux下如何添加一个用户并且让用户获得root权限
    Spring 数据库读写分离
    python 安装 pyautogui 报错
    java在方法中获取request对象
    客户端通过Feign发起请求 服务端通过request取 json对象
    LongAdder 测试
  • 原文地址:https://www.cnblogs.com/friendwang1001/p/450803.html
Copyright © 2011-2022 走看看