首页  >  文章  >  后端开发  >  C# 中的自定义异常

C# 中的自定义异常

王林
王林原创
2024-09-03 15:21:321099浏览

在我们正在开发的应用程序中,当发生违反业务规则的情况时,我们会引发自定义异常来处理这种情况。自定义异常是专门为解决应用程序中的独特场景而创建的异常。为了创建自定义异常,我们从 C# 中的 ApplicationException 或 Exception 类派生一个新类。 ApplicationException 类从 .NET v1.0 版本开始包含在 .NET Framework 中,旨在用作 C# 中自定义异常类的基类。

C# 中自定义异常的工作

  • 异常处理应用程序执行期间发生的错误类型。错误是指应用程序执行过程中出现的意外问题。相反,由于多种原因,在应用程序执行期间预计会发生异常。
  • 应用程序使用异常处理来处理应用程序执行期间预期发生的异常。 C# 中异常的处理是通过 try、catch、finally 和 throw 这两个关键字来完成的。
  • 类代表 C# 中的异常。 C# 中的这些异常类派生自 System.异常类可以直接方式或间接方式。
  • Application Exception 类或 Exception 类用于创建可以抛出的自定义异常。
  • 只有当这些异常可以被捕获并可以以不同的方式处理时,创建自定义异常才有用。
  • 应用程序发生错误,如果我们在C#中创建自定义异常,可以使用错误监控工具监控错误日志。

示例

下面给出了提到的示例:

示例#1

C# 程序,演示在程序中使用自定义异常。

代码:

using System;
//a namespace called user defined is defined
namespace UserDefined
{
//a class called test weather is defined
class Testweather
{
//main method is called
static void Main(string[] args)
{
//an instance of the class temperat is defined
Temperat tem = new Temperat();
try
{
//the show method of temperat class is called using the instance of the temperat class
tem.show();
}
catch(WeatheriscoldException e)
{
Console.WriteLine("The weather is cold Exception: {0}", e.Message);
}
Console.ReadKey();
}
}
}
//a custom exception class called Weather is cold Exception class is created which is thrown if the weather is cold
public class WeatheriscoldException: Exception
{
public WeatheriscoldException(string message): base(message)
{
}
}
//a class called temperat is defined
public class Temperat
{
//a variable called temp is defined and assigned to zero
int temp = 0;
//a method called show is defined
public void show()
{
//the temperature is checked to determine the weather
if(temp == 0)
{
throw (new WeatheriscoldException("The temperature is found to be zero and hence the weather is cold"));
}
else
{
Console.WriteLine("The Temperature is: {0}", temp);
}
}
}

输出:

C# 中的自定义异常

说明:

  • 在上面的程序中,定义了一个名为user-define的命名空间。然后定义一个名为测试天气的类。然后调用main方法。然后定义类 tempat 的实例。然后使用 tempat 类的实例调用 tempat 类的 show 方法。
  • 然后创建一个名为 Weather is Cold Exception 的自定义异常类,如果天气冷则抛出该异常类。然后定义一个名为temperate的类。然后定义一个名为 temp 的变量并将其赋值为零。然后定义了一个名为show的方法。然后检查温度以确定天气。

示例#2

C# 程序,演示在程序中使用自定义异常。

代码:

using System;
//a namespace called exception handling is defined
namespace ExceptionHandling
{
//The custom exception class called odd num exception class is created by inheriting the exception class
public class OddNumException : Exception
{
//The property message is being overridden here
public override string Message
{
get
{
return "There cannot be an odd divisor";
}
}
}
//a class called check is defined
class check
{
//main method is called
static void Main(string[] args)
{
//three integer variables are defined
int a, b, c;
Console.WriteLine("Please enter two numbers and type of the numbers must be integer:");
a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
try
{
//checking if the divisor is an odd number or an even number
if (b % 2 > 0)
{
//exception is thrown if the divisor is an odd number
throw new OddNumException();
}
c = a / b;
Console.WriteLine(c);
}
catch (OddNumException two)
{
Console.WriteLine(two.Message);
}
Console.WriteLine("The program ends here");
Console.ReadKey();
}
}
}

输出:

C# 中的自定义异常

说明:

  • 在上面的程序中,定义了一个名为异常处理的命名空间。那么这个类称为奇数异常类,是通过继承异常类创建的。然后属性消息在那里被覆盖。然后定义一个名为check的类。然后调用main方法。然后定义三个整型变量来获取两个输入整型变量,另一个整型变量用于存储整型输出。
  • 然后使用 parse() 方法解析两个整数变量。然后检查第二个整数变量或除数,看看它是奇数还是偶数,这是通过检查除数除以二的余数是否大于零或等于零来完成的。如果除数是奇数,则抛出异常。

优点

以下是提到的优点:

  • C#中自定义异常类型的自定义处理可以通过调用代码来完成。
  • 可以通过使用 C# 中的自定义异常处理来自定义围绕自定义异常类型的监控。

以上是C# 中的自定义异常的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn