/*
自定义异常实例。
* 步骤:
* (1)声明一新的异常类;
* (2)为新的异常类定义属性和方法,或重载父类的属性和方法,使其能体现该类所对应的错误信息;
* (3)自定义的异常,需要使用throw将其抛出。
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class outofBoundException : ApplicationException //声明新的异常类
{
public outofBoundException(string msg)
: base(msg) //声明带参数的构造函数,并向基类传递参数
{ }
}
class Program
{
static void Main(string[] args)
{
try
{
Console.Write("请输入第1个数:");
double x = double.Parse(Console.ReadLine());
Console.Write("请输入第2个数:");
double y = double.Parse(Console.ReadLine());
if (x < 0 || y < 0)
{
//抛出异常,调用自定义异常类的有参构造函数
throw new outofBoundException("不允许为负数!");
}
Console.WriteLine("这两个数的商是:{0}", x / y);
}
catch (DivideByZeroException) //捕捉除数为0异常
{
Console.WriteLine("第2个数字不能为0");
}
catch (FormatException) //捕捉数据类型异常
{
Console.WriteLine("必须输入数字");
}
catch (outofBoundException e)
{
Console.WriteLine(e.Message);
}
catch (Exception e) //最后捕捉其他类型的异常
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("按任意键退出》》");
Console.ReadKey();
}
}
}
}
运行结果:
/*
将百分制转化为五分制,如果输入的百分制成绩超出0~100时,程序抛出异常。
* 提示:定义一个用户自定义异常类OverflowRange,通过Throw new OverflowRange(message)实现。
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class OverflowRange : ApplicationException //声明新的异常类
{
public OverflowRange(string msg)
: base(msg) //声明带参数的构造函数,并向基类传递参数
{ }
}
class Program
{
static void Main(string[] args)
{
try
{
Console.Write("请输入百分制数:");
int x = int.Parse(Console.ReadLine());
if (x < 0 || x > 100)
{
//抛出异常,调用自定义异常类的有参构造函数
throw new OverflowRange("超出范围!");
}
switch (x / 10)
{
case 9:
Console.WriteLine("五分制为:A");
break;
case 8:
Console.WriteLine("五分制为:B");
break;
case 7:
Console.WriteLine("五分制为:C");
break;
case 6:
Console.WriteLine("五分制为:D");
break;
default:
Console.WriteLine("五分制为:E");
break;
}
}
catch (OverflowRange e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("按任意键退出》》");
Console.ReadKey();
}
}
}
}
运行结果: