趣文网,分享全网好句子、好文章!

一个合格的.NET程序员 要会使用C#异常处理语句来提升用户体验

时间:2023-10-18 02:23:01

相关推荐

一个合格的.NET程序员 要会使用C#异常处理语句来提升用户体验

C#核心开发-第18单元-调试和异常处理-第2节:异常处理语句

1. 什么是异常?

程序中的异常处理提供了处理程序运行时出现的任何意外或异常情况的方法。

在.NET开发中,使用 try…catch 和 finally 异常处理语句来处理异常情况,尝试可能未成功的操作,处理失败,以及在事后清理资源。

异常不是错误,错误是指编码无法编译通过,出现的明显的问题,是需要解决才可以通过的。

而异常可能发生在程序运行过程中,或用户的操作不当遭成的,也属于BUG的一部分,也可能是输入的值没有正常运行而抛出了异常。

2. 捕获和处理异常

异常是程序在运行其间产生的,不知什么时候发生,如果异常被用户碰上了,则对用户来说非常的不友好。

为了避免异常的发生,开发者要对自己开发的程序有一个预期的判断,消灭掉所有可能发生异常的问题,以提高用户体验。

在C#中,可以使用try…cath语句来捕获可能发生的异常,并对当发生了异常,应该采取什么措施来处理异常。

下面使用Visual Studio 2019创建.NET控制台应用程序,并编写C#代码来讲解捕获异常和处理异常的情况。

图1的C#代码,在编译上是100%编译通过的,代码上没有任何错误,在VS2019中生成结果如下:

在图2中,C#编译器已经编译通过了,从代码级别上看,没有任何问题。

现在运行一下结果,看是否能够正常运行,如下图所示:

从图3的结果上看,是能正常运行,看似没有什么问题。

但其实,图1的代码存在很大的异常问题,再运行一下:

在图4中没有输入检查,如果用户错误的输入了数量为3.99,打回车键:

VS2019给我们抛出了异常,异常信息是:“输入字符串的格式不正确。”

在此C#代码中,我们将用户输入的商品数量强制转换成了int类型,但用户输入了3.99,是小数,无法强制转换为int类型,所以抛出异常了。

这种现象就是异常,异常我们要避免掉,不然用户体验太差了。

现在我们修改一下图5的代码,在C#代码中添加异常处理,如下图所示:

C#异常处理完整代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Yidosoft.Edu.Csharp.DebugException{class Program { static void Main(string[] args) { Console.Title = "一都编程 - 调试和异常处理"; Console.Write("请输入商品名称:"); string name = Console.ReadLine(); try { Console.Write("请输入商品数量:"); int sum = int.Parse(Console.ReadLine()); Console.Write("请输入商品单价:"); double price = double.Parse(Console.ReadLine()); } catch(Exception ex) { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("商品数量必须是整数。"); Console.ResetColor(); } Console.ReadKey(); } }}

图6的代码说明如下:

(1). try语句用于将可能发生异常的代码括起来。对于将来可能会发生异常的代码,就使用try括起来。

(2). catch语句必须与try一起使用,用于当出现了异常,要如何处理,是给出友好提示,还是写入日志供后期维护使用。

运行一下图6的代码:

在图7中,当发生了异常,并没有抛出一些看不懂的英文,而是给出了我们自定义的错误消息,这样对于用户来说体验是非常好的。

3. 异常后置代码处理

对于C#中的try…catch…语句,还有一种组合是:try…catch…finally。

finally不是必须的,可有可无,但try…catch中的try和catch是必须同时存在的。

finally的含义是:不管异常有没有发生,后置代码都会被执行,用来保障一些操作必须被执行,如释放资源、关闭数据库连接等,主要是为异常处理后事的,因为一旦出现异常,catch后面的代码将不再执行,但是finally中的后置代码是肯定执行的。

在图8中,不管是否发生意外,都会执行一些重要的操作:

当发生代码出现异常时,finally中的后置代码还是会执行的。

总之,一个优秀合格的.NET程序员,都会在自己的程序中合理的使用异常处理语句,来避免各种异常情况,并很好的提升了软件的用户体验。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(3)
  1. 学会笑’伤心2024-01-31 18:11学会笑’伤心[云南省网友]120.72.39.68
    作为.NET程序员掌握C#异常处理语句是基本功不能马虎!
    顶7踩0
  2. 消失、的梦2023-12-27 12:55消失、的梦[四川省网友]110.44.145.4
    异常处理对于用户验真能起到很大作用要努力提升自己技术水平!
    顶3踩0
  3. 只想静静看着你2023-11-22 07:39只想静静看着你[河北省网友]203.28.86.38
    学习异常处理真很重要遇到bug不至于让用户到片红字!
    顶0踩0
相关阅读
Goto语句无条件转移语句 一个让你欢喜堪忧的处理神器

Goto语句无条件转移语句 一个让你欢喜堪忧的处理神器

今天要和大家介绍的是另外一个神奇,他就是我们常用的GOTO语句

2023-10-20

黑马程序员:Python中判断语句以及循环语句的习题

黑马程序员:Python中判断语句以及循环语句的习题

其中,判断语句主要是if语句,循环语句主要是for语句和while语句

2023-12-22

详解Python判断语句的使用方法

详解Python判断语句的使用方法

本篇介绍Python判断语句的使用,主要讨论简单条件语句、多重条件语句和嵌套条件语句,在讲解的每个案例中都配有流程图和代码说明。通过本篇的学习,可以

2023-12-30

Java程序员看过来 快速了解Python语言

Java程序员看过来 快速了解Python语言

对没有编程经验的读者来说,也可以做到对Python编程有个大概了解

2011-12-04