C#中自定义异常

 
在写方法时,是否遇见数据输入的错误呢.如果字符串格式不能转换成整型的什么.不过处理这些错误的异常,.Net已经都帮我们写好了.
但是如果一个字符串输入你想判断他是不是二进制数..这种异常你会怎么处理呢,,返回一个错误标识吗?如果你写的函数是二进制转换成十进制
,返回的值是整型.这个错误返回值如果标识呢...哈哈,,,你可能会说出几种或几十种解决方法.....

下面就是我通过异常来解决的一个方法哦...
如果你想看我的处理方法,,或想了解下如何自定义一个自己异常提示..那就继续往下吧...

创建自定义异常主要可以两个类中派生而来:
1.ApplicationException 类
2.System.Exception类
上面两个类具体要怎么用,,还得待考察哦..
 
 
今天我是用System.Exception这个类来派生我的自己类哦.
代码:
1. 创建自定义异常类
 public class UserDefinedException : System.Exception // 看到没继承System.Exception类
 {
  private string message;// 错误消息
  // 下面是构造函数..你可自己多写几个..把他变成多态可能会更灵活哦.
  public UserDefinedException(string Message) : base() // 这边是重写构造函数
  {
   message = Message;
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  /// <summary>
  /// 重写异常错误信息
  /// </summary>
  /// <returns></returns>
  public override string ToString() // 重写ToString方法,请看下面override说明
  {
   return message;
  }
 }
 
override说明:(MSDN里写的哦)
使用 override 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法
。重写基方法必须与重写方法具有相同的签名。不能重写非虚方法或静态方法。重写基方法必须是虚拟的、抽象的或重写的。重写声明不能更
改虚方法的可访问性。重写方法和虚方法必须具有相同的访问级修饰符。不能使用下列修饰符修改重写方法:new   static    virtual  
abstract重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且重写属性必须是虚拟的、抽象的或重写的。
 
2. 自定义异常的使用:
  public static int BinarySystemToAlgorism(string BinarySystemValue)
  {
   BinarySystemValue = BinarySystemValue.Trim();
   int Algorism = 0;
   int len = BinarySystemValue.Length;
   int temp;
   int tempPow = 0;
   int col = 0;
   for(int index = len - 1;index > -1;index --)
   {
     temp = Convert.ToInt32(BinarySystemValue[col].ToString());
     if(!(temp == 0 || temp == 1))
     {
      // 看到没在这边哦,由于我的写在不同一个项目所以带上的命名空间哦.
      throw new FarSeekClass.UserDefinedException("出错了,二进制输入出错!");
     }
     col += 1;
     tempPow = Pow(2,index);
     Algorism += temp * tempPow;
    
   }
   return Algorism;
  }
 
3.  外面接收异常消息:
   try
   {
    this.TextBox1.Text = FarSeekClass.DataSwitch.BinarySystemToAlgorism(TH.Text).ToString();
   }
    catch(FarSeekClass.UserDefinedException ex) // 注意这边,catch后面异常类是写了我们自己定义的类名
   {
    Response.Write(ex.ToString());
   }
 
以上就是我今晚最的价值的.
嘻....多给我提意见哦..记得给留言,, 路过也留个影哦..
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值