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

问题分析:

首先,int.Parse()是一种类容转换,表示将数字内容的字符串转为int类型。该函数要求被操作的字符串由数字组成,因此存在三种可能的输入异常情况:

1. 如果字符串为空,则抛出ArgumentNullException异常;

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

3. 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

所以 int.parse("abcd") 出错原因在于字符串的内容不是数字,

解决方案:

可以使用 int.TryParse() 函数,int.TryParse() 与 int.Parse() 较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。

最后一个参数为输出值,如果转换失败,输出值为 0,如果转换成功,输出值为转换后的int值。

时间: 2024-07-30 13:47:53

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

int.parse的出错异常处理

问题的起因是这样的:在完成一个闰年判断的程序的时候,任务是对输入的字符串进行转换从而得到了int类型的年份,从而进行判断:然而,若输入超出int类型范围或者奇葩内容时,int.parse()进行转换时便会弹出exception...所以,这回的任务就是处理exception或者在不规范输入时不弹出异常. 嗯...看到这个作业,第一步想到的就是对int.parse()进行异常处理,把弹出的exceptions catch一下.代码大概是如下这个样子: try{ int year = int.Par

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

int.Parse 异常分析报告

在本次博客中,主要围绕int.Parse的异常进行说明. 在c#中使用int.Parse将其他类型转换成int型时,运行程序是经常抛出以下三种异常类型: 1,System.ArgumentNullException  转换对象为null 2,System.FormatException 格式不正确 3,System.OverflowException 转换对象溢出 对于System.ArgumentNullException这种情况而言,int.Parse在判断转换对象为null时,其不能转换出

C#的(int) /int.Parse()/int.TryParse()/Convent.ToInt32()的区别--推荐使用Int.TryParse()

一.(int)变量名[强制类型转换]:  该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使用显式转换,也就是该数据类型转换方式,否则会产生编译错误. 该方式对于浮点数会做无条件舍去,失去精确度.当然,该方式也可以进行object到int得转换,但是,object的值要赋予int类型的值,否则会产生编译错误,而且object为null时也会出错.最后切忌的一点,千万不要用来处理char类型

软件测试技术(四)——闰年判断器+ int.Parse错误如何解决

目标程序 本次所测试的目标程序是一个闰年判断器,我们知道,一般情况下年份被4整除就可以了,但是如果遇到百年的时候还需要被400整除,于是有了如下的逻辑判断: bool isRunNian = false; if (year > 0) { if ((year % 100 == 0 && year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)) { isRunNian = true; } } 测试方法介绍—Syntax

C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识

自己也是刚学习C#程序设计语言,总结了一点知识点,想分享给大家.毕竟刚学习这门语言,学得不深,哪里如果有错误,请帮个忙指出一下哈,谢谢! 1.(int)可用于单精度.双精度等其他数值类型的转换(到整型int),不能用于转换string类型,例如: 这里用(int)转换string是不可以的,系统会报错,程序是不能运行. using System.Collections.Generic; using System.Linq; using System.Text; using System.Thre

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# Parse和Convert的区别分析

原文:C# Parse和Convert的区别分析 大家都知道在进行类型转换的时候有连个方法供我们使用就是Convert.to和*.Parse,但是疑问就是什么时候用C 什么时候用P 通俗的解释大家都知道: Convert 用来转换继承自object类型的类型(当然所有的类型都是继承自object的),但是一般Convert用来转化直接就是obejct的类型,如我们用datareader从数据库取出一个数据的时候就是object类型的,此时你若用int.parse(dr["id"]):肯

C# Parse和Convert的区别分析(转)

大家都知道在进行类型转换的时候有连个方法供我们使用就是Convert.to和*.Parse,但是疑问就是什么时候用C 什么时候用P 通俗的解释大家都知道: Convert 用来转换继承自object类型的类型(当然所有的类型都是继承自object的),但是一般Convert用来转化直接就是obejct的类型,如我们用datareader从数据库取出一个数据的时候就是object类型的,此时你若用int.parse(dr["id"]):肯定会报错的,所以必须使用Convert.toint