int.Parse 异常分析报告

  在本次博客中,主要围绕int.Parse的异常进行说明。

  在c#中使用int.Parse将其他类型转换成int型时,运行程序是经常抛出以下三种异常类型:

  1,System.ArgumentNullException  转换对象为null
  2,System.FormatException    格式不正确
  3,System.OverflowException    转换对象溢出

  对于System.ArgumentNullException这种情况而言,int.Parse在判断转换对象为null时,其不能转换出一个固定的值来,如果是Convent.ToInt32()来转换null那么返回的诗0,其实Convent.ToInt32()和int.Parse较为相似,因为前者实际上在内部调用了后者进行处理,然而Convent.ToInt32()却可以转换更多的类型,并且异常处理机制也优于int.Parse()。但既然相似也有相同的地方,当二者的转换对象都为“”时,二者都将抛出异常。

  System.FormatException,是指明转换对象的类型与目标类型不匹配,如int nbalance = int.Parse(strBalance);strBalance=100.00。strBalance在转换后并不是整型,一次会抛出System.FormatException异常。修改int nbalance = int.Parse(strBalance)为Decimal nbalance = decimal.Parse(strBalance); 此时转换可以继续执行,不会抛出异常。其实在这里Convent.ToInt32()也无能为力,尽管其可以转换更多的对象类型,但在转换对象格式不正确这里,其也不能做出除了报错意外的任何有效措施来。

  溢出是贯穿整个计算机行业一个经久不衰的问题,System.OverflowException即为转换对象溢出,可能上溢出,也可能下溢出,在转换对象溢出时, int.Parse函数不会做出其他的行为,比如当溢出时,取溢出边界的值作为转换对象,或者当成0来处理。 int.Parse在与到溢出时,其直接抛出异常。

  在转换其他类型为int型时,其实还有一个int.TryParse,int.TryParse与int.Parse也较为相似,但是int.TryParse不会产生异常,因为int.TryParse(bool,int)是一个可以返回bool对象的函数,但转换成功时,返回true,转换失败返回false。最后一个参数为输出值,当转换失败时,其值为0。

  在c#中使用int.Parse函数时,应当尽量避免抛出异常的情况发生,如果不能避免,则应选择其他的转换函数,如Convent.ToInt32(),int.TryParse(bool,int)等。

时间: 2024-08-28 19:08:00

int.Parse 异常分析报告的相关文章

当当当当 int.Parse()异常~

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string inputNum; int num; Console.WriteLine("Please

关于 int.parse("abcd") 出错的问题分析及解决方案

问题分析: 首先,int.Parse()是一种类容转换,表示将数字内容的字符串转为int类型.该函数要求被操作的字符串由数字组成,因此存在三种可能的输入异常情况: 1. 如果字符串为空,则抛出ArgumentNullException异常: 2. 如果字符串内容不是数字,则抛出FormatException异常: 3. 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常: 所以 int.parse("abcd") 出错原因在于字符串的内容不

int.Parse()及其异常判断

1.int.Parse()是一种类容转换,表示数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatException异常: 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常: 2.除了int.Parse(),C#中海油其他函数能将类型转换为int型.如Convert.ToInt32().int.TryParse().(int)等函数. int.TryPa

int Parse方法引发的异常

今天,我们来介绍一下Parse方法引发的异常. 一.Parse方法(String): 首先,我们先来介绍一下这个Parse方法的主要作用,即将数字的字符串表示形式转换为它的等效 32 位有符号整数.在C++中,它的具体语法如下: public: static int Parse( String^ s ) 其中,参数是s,类型是String,包含要转换的数字的字符串.返回值是int,与 s 中包含的数字等效的 32 位有符号整数. Parse方法主要有三个异常: 1)System.Argument

int.Parse()容易出现的异常及解决办法

对于转化string s try{ int year = int.Parse(s);} 异常 条件 ArgumentNullException s 为 null 引用(在 Visual Basic 中为 Nothing) FormatException  s 的格式不正确 OverflowException  s 表示小于 MinValue 或大于 MaxValue 的数字 那么如何处理异常呢?只需在下面加入下面的函数: catch (Exception){ system.out.println

关于int.Parse()的异常

一.int.Parse(string 变量名) 该方式是将数字内容的字符串转换为int类型 1.如果字符串的内容为Null ,则抛出ArgumentNullException异常: 2.如果字符串内容不是数字,则抛出FormatException异常: 3.使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内,若超出,则抛出OverflowException异常. 二.在网上搜索相关内容,Convert.ToInt32().int.Parse().int.TryP

4 int.parse方法调用问题和同行评审

1 关于int.parse 的方法调用问题 我们知道int.parse用于数据类型的转换,int.parse(object obj)这个可以将填入的参数obj转换为int的数据类型. 我们在使用int.parse()时回遇到一系列问题. 例如:int.parse(null)会返回异常,另外int.Parse("4.5") 直接报错:"输入字符串的格式不正确" int.Parse是转换String为int,得到一个object对象,你想把double转换为int,用i

字符串转换数值类型异常分析

在这篇文章中,我们来分析一下C#的函数int.Parse(),字符串转换数值类型时候发生的异常. int.Parse(String str): 这种方法是将数字内容的字符串转换为int类型. 如果字符串的内容为Null ,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatException异常. 使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内. 好,现在来一段测试程序: 这是测试界面 输入int32表示范围内的

c#中的类型转换,int.parse("ab")为什么会出错

一.问题 在一个简单的闰年问题的判断中,输入框获取的字符串,我们希望输入数字字符串,将字符串转换为int整数进行判断.编写程序如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks