zoukankan      html  css  js  c++  java
  • 字符串转换数值类型异常分析

    在这篇文章中,我们来分析一下C#的函数int.Parse(),字符串转换数值类型时候发生的异常。

    int.Parse(String str): 这种方法是将数字内容的字符串转换为int类型。

    如果字符串的内容为Null ,则抛出ArgumentNullException异常;

    如果字符串内容不是数字,则抛出FormatException异常。

    使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内。

    好,现在来一段测试程序:

    这是测试界面

    输入int32表示范围内的数字:

    输入非数字字符串:

    输出了发生的异常类型

    输入int32表示范围以外的数字:

    (这下还知道了int32表示的最大值是2147483647)

    如果不输入会怎样:

    不输入时候就是空字符串,发生了和输入非数字字符串一样的异常。

    下面是测试程序的源代码:

    try
                {
                    int res = int.Parse(textBox1.Text);
                    label3.Text = res + "";
                }
                catch (Exception exception)
                {
                    label3.Text = exception.ToString();
                }
    

    接下来再讨论下Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse的区别。

    Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32 内部调用了 int.Parse:

    Convert.ToInt32 参数为 null 时,返回 0;
    int.Parse 参数为 null 时,抛出异常。

    Convert.ToInt32 参数为 "" 时,抛出异常;
    int.Parse 参数为 "" 时,抛出异常。

    Convert.ToInt32 可以转换的类型较多;
    int.Parse 只能转换数字类型的字符串。
    int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0。
  • 相关阅读:
    截取小数位数(准确四舍五入及直接截取)
    水印
    用心整理的 献丑啦 一些关于http url qs fs ...模块的方法
    html禁止清除input文本输入缓存的两种方法
    flink写入elasticsearch报错!OOM内存溢出!连接异常关闭!
    实现网格建造系统
    AcWing 1064. 小国王
    AcWing 1052. 设计密码
    KMP 模板
    AcWing 1058. 股票买卖 V
  • 原文地址:https://www.cnblogs.com/dengye/p/4394445.html
Copyright © 2011-2022 走看看