在写方法时,是否遇见数据输入的错误呢.如果字符串格式不能转换成整型的什么.不过处理这些错误的异常,.Net已经都帮我们写好了.
但是如果一个字符串输入你想判断他是不是二进制数..这种异常你会怎么处理呢,,返回一个错误标识吗?如果你写的函数是二进制转换成十进制
,返回的值是整型.这个错误返回值如果标识呢...哈哈,,,你可能会说出几种或几十种解决方法.....
下面就是我通过异常来解决的一个方法哦...
如果你想看我的处理方法,,或想了解下如何自定义一个自己异常提示..那就继续往下吧...
创建自定义异常主要可以两个类中派生而来:
1.ApplicationException 类
2.System.Exception类
2.System.Exception类
上面两个类具体要怎么用,,还得待考察哦..
今天我是用System.Exception这个类来派生我的自己类哦.
代码:
1. 创建自定义异常类
public class UserDefinedException : System.Exception // 看到没继承System.Exception类
{
private string message;// 错误消息
代码:
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;
}
}
public UserDefinedException(string Message) : base() // 这边是重写构造函数
{
message = Message;
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 重写异常错误信息
/// </summary>
/// <returns></returns>
public override string ToString() // 重写ToString方法,请看下面override说明
{
return message;
}
}
override说明:(MSDN里写的哦)
使用 override 修饰符来修改方法、属性、索引器或事件。重写方法提供从基类继承的成员的新实现。由重写声明重写的方法称为重写基方法
使用 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;
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;
}
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());
}
try
{
this.TextBox1.Text = FarSeekClass.DataSwitch.BinarySystemToAlgorism(TH.Text).ToString();
}
catch(FarSeekClass.UserDefinedException ex) // 注意这边,catch后面异常类是写了我们自己定义的类名
{
Response.Write(ex.ToString());
}
以上就是我今晚最的价值的.
嘻....多给我提意见哦..记得给留言,, 路过也留个影哦..
嘻....多给我提意见哦..记得给留言,, 路过也留个影哦..