1. .NET中的异常类
2.捕获一切异常:
程序(1)示例:
namespace _47_异常_2_
{
internal class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("请输入分母");
int denominator = Convert.ToInt32(Console.ReadLine());//double型可以为0
double result = 100 / denominator;
Console.WriteLine("结果:100/{0}={1}", denominator, result);
}
catch
{
Console.WriteLine("发生异常!");
}
}
}
}
3.使用帮助文档
处理C#中异常,可以访问链接: Microsoft Learn
4.使用异常类的属性
输出异常类型及异常位置
程序(2)示例:
namespace _47_异常_2_
{
internal class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("请输入分母");
int denominator = Convert.ToInt32(Console.ReadLine());//double型可以为0
double result = 100 / denominator;
Console.WriteLine("结果:100/{0}={1}", denominator, result);
}
catch (DivideByZeroException e)//类后面跟对象,常用e表示
{
Console.WriteLine(e.Message);//错误类型
Console.WriteLine(e.StackTrace);//错误位置
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
}
}
5.自定义异常
定义负数异常类
程序(3)示例:
using System;
namespace _47_异常_2_
{
internal class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("请输入一个非负数");
double number = Convert.ToInt32(Console.ReadLine());
double root;
if(number<0)
{
throw new NegativeNumberException("负数不能开平方!");
}
else
{
root=Math.Sqrt(number);
}
Console.WriteLine("√{0}={1}", number, root);
}
catch (NegativeNumberException e)//类后面跟对象,常用e表示
{
Console.WriteLine(e.Message);//错误类型
Console.WriteLine(e.StackTrace);//错误位置
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
}
class NegativeNumberException:ApplicationException
{
public NegativeNumberException(): base("对负数进行非法操作")
{
}
public NegativeNumberException(string message):base(message)
{
}
}
}