如何用C#创建用户自定义异常浅析
作者:conan5566 时间:2023-06-10 20:06:16
概述
异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、finally和throw。
try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。
自定义异常
您也可以定义自己的异常。用户自定义的异常类是派生自 ApplicationException 类。
using System;
namespace UserDefinedException
{
class TestTemperature
{
static void Main(string[] args)
{
Temperature temp = new Temperature();
try
{
temp.showTemp();
}
catch(TempIsZeroException e)
{
Console.WriteLine("TempIsZeroException: {0}", e.Message);
}
Console.ReadKey();
}
}
}
public class TempIsZeroException: ApplicationException
{
public TempIsZeroException(string message): base(message)
{
}
}
public class Temperature
{
int temperature = 0;
public void showTemp()
{
if(temperature == 0)
{
throw (new TempIsZeroException("Zero Temperature found"));
}
else
{
Console.WriteLine("Temperature: {0}", temperature);
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
TempIsZeroException: Zero Temperature found
抛出对象
如果异常是直接或间接派生自 System.Exception 类,您可以抛出一个对象。您可以在 catch 块中使用 throw 语句来抛出当前的对象,如下所示:
Catch(Exception e)
{
...
Throw e
}
总结
来源:https://mp.weixin.qq.com/s/d-QWtPEHBg79ATV4roF8Kg
标签:c#,异常,自定义
0
投稿
猜你喜欢
详解mysql插入数据后返回自增ID的七种方法
2023-07-01 21:32:20
Android自定义View仿大众点评星星评分控件
2023-07-22 22:37:28
Java面向接口编程之命令模式实例详解
2021-10-19 14:26:53
Java实现十进制与二进制互转的示例详解
2022-04-02 07:40:56
Java C++ 算法题解leetcode1608特殊数组特征值
2023-05-21 21:09:01
java字符串相似度算法
2023-11-26 12:33:25
MyBatis-Plus逻辑删除和字段自动填充的实现
2023-01-08 03:45:54
C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色
2021-06-23 15:05:50
android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
2021-06-14 17:19:16
android端微信支付V3版本地签名统一下单详解
2023-05-18 02:37:44
java如何生成登录随机验证码
2023-08-21 11:42:57
MyBatis自定义映射关系和关联查询实现方法详解
2021-12-18 21:25:28
springboot全局异常处理代码实例
2023-02-05 20:41:36
HttpClient 在Java项目中的使用详解
2021-12-06 02:36:57
Java开发必备的三大修饰符
2021-10-19 10:11:01
C#实现顺序栈和链栈的代码实例
2021-08-17 02:36:40
C++实现特殊矩阵的压缩存储算法
2023-11-17 23:53:06
使用okhttp替换Feign默认Client的操作
2021-10-03 16:57:59
详解Java Map中三个冷门容器的使用
2021-09-02 14:27:22
Mybatis配置错误:java.lang.ExceptionInInitializerError
2021-12-31 16:58:59