常规异常
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[]args)
{
bool flag = true;
do
{
try
{
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = a / b;
Console.WriteLine(c);
flag = false;
}
catch(DivideByZeroException d)
{
Console.WriteLine(d.Message+"Try again");
flag = true;
}
catch(FormatException f)
{
Console.WriteLine(f.Message+"Try again");
flag = true;
}
}
while (flag );
}
}
}
自定义异常
using System;
namespace ConsoleApp1
{
class AgeException:Exception
{
//3种构造函数
public AgeException() : base("Age must over zero") { }
public AgeException(string message) : base(message) { }
public AgeException(string message,Exception e) : base(message, e) { }
public int AgeValue { set; get; }
}
class Human
{
private int age;
public int Age { get { return age; }
set
{
if (value >= 0)
{
age = value;
}
else
{
var e = new AgeException();
e.AgeValue = value;
throw e;
}
}
}
}
class Program
{
static void Main(string[]args)
{
Human h = new Human();
try
{
h.Age = -1;
}catch(AgeException E){
Console.WriteLine(E.Message);
Console.WriteLine("Age value={0}", h.Age);
}
}
}
}