首页 > 分享 > input string was not in a correct

input string was not in a correct

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
个人主页:小嗷犬的博客
个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
本文内容:C# 异常捕获

C# 异常捕获 编译错误与运行错误进行异常捕获

编译错误与运行错误

在编写程序时,编译器会帮我们检查程序是否有错误,当我们改正之后,程序就可以编译了,通常也能够正常运行。

让我们来看看下面这段代码:

using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { string s = Console.ReadLine(); int n = int.Parse(s); Console.WriteLine(n); } } } 1234567891011121314

这段代码在编译的时候不会报错,而且当我们正常输入整数时,程序也能正常运行。

但当我们输入的不是整数时,就出现了异常
System.FormatException: Input string was not in a correct format.

我们把编译器能够发现并指出的错误叫做编译错误或者叫语法错误,而把上述那种运行时可能出现的错误叫做运行错误或者叫逻辑错误

进行异常捕获

在程序运行时出现错误是很可怕的事,它们被称为bug,造成的影响有大有小,但是几乎都是恶性的。

作为一个老道的程序员,应该学会提前预判可能产生的错误,并提前写好解决办法。

而我们要说的异常捕获,就是为了在异常发生时执行解决办法。

异常捕获语句的语法格式如下:

try { <可能出现异常的代码> } catch { <出现异常后执行的代码> } finally { <不管有没有异常都要执行的代码(可选)> } 123456789101112

catch还可以写成catch(Exception e),其中e为捕获到的异常,我们可以通过e了解到异常的具体信息。

使用异常捕获语句来改写之前的代码:

using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { string s = Console.ReadLine(); try { int n = int.Parse(s); Console.WriteLine(n); } catch { Console.WriteLine("输入的不是一个整数"); } } } } 123456789101112131415161718192021

这么写,在原本程序会崩溃的情况下,现在程序能够正常的运行结束,并输出:"输入的不是一个整数"。

使用e加toString方法,来打印异常信息:

using System; namespace ConsoleApplication { class Program { static void Main(string[] args) { string s = Console.ReadLine(); try { int n = int.Parse(s); Console.WriteLine(n); } catch(Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine("程序执行完毕"); } } } } 1234567891011121314151617181920212223242526

当错误输入时的输出:

System.FormatException: Input string was not in a correct format. at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type) at System.Int32.Parse(String s) at ConsoleApplication.Program.Main(String[] args) in C:UsersMarquisDesktopConsoleApplicationProgram.cs:line 12 程序执行完毕 12345

使用熟练异常捕获可以帮助我们提高项目的健壮性,使得程序在发生错误时,仍能解决问题并继续运行,这样也就提高了用户体验。

相关知识

【深度学习TPU+Keras+Tensorflow+EfficientNetB7】kaggle竞赛 使用TPU对104种花朵进行分类 第十八次尝试 99.9%准确率
嘻唰唰第六批B改错题
字符串(C# 编程指南)
字符串基础(C# 编程指南)
性能调优: df中的string wordcount
js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中
c++ TCHAR转string导致中文缺失或乱码问题及解决
一文了解Simhash原理和用法
JZOJ 3887. 【长郡NOIP2014模拟10.22】字符串查询
JAVA编程艺术

网址: input string was not in a correct https://m.huajiangbk.com/newsview105302.html

所属分类:花卉
上一篇: 定义一个函数count,统计字符
下一篇: 广州雕塑公园位于哪个区?()