1.异常
释义:程序执行期间发生的问题,包括非法数据、读取文件不存在等等。
程序(1)示例:
namespace _46_异常_1_
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入分母");
int denominator=Convert.ToInt32(Console.ReadLine());//double型可以为0
double result = 100 / denominator;
Console.WriteLine("结果:100/{0}={1}",denominator,result);
}
}
}
非法数据输入:如果输入
0
提示:
System.DivideByZeroException: 'Attempted to divide by zero.'
非法数据输入:如果输入
hello
提示:
System.FormatException: 'Input string was not in a correct format.'
2.如何捕获异常
2.1捕获异常–try-catch结构
程序(2)示例:
namespace _46_异常_1_
{
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)
{
Console.WriteLine("分母不能为零!");
}
catch (FormatException)
{
Console.WriteLine("格式错误!");
}
}
}
}
非法数据输入:如果输入
0
输出:
请输入分母
0
分母不能为零!
非法数据输入:如果输入
hello
输出:
请输入分母
hello
格式错误!
2.2收尾工作–try-catch-finally结构
不管程序有无异常,都会执行finally块中程序,起到收尾工作的作用
程序(3)示例
namespace _46_异常_1_
{
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)
{
Console.WriteLine("分母不能为零!");
}
catch (FormatException)
{
Console.WriteLine("格式错误!");
}
finally
{
Console.WriteLine("这是finally块。");
}
}
}
}
非法数据输入:如果输入
0
输出:
请输入分母
0
分母不能为零!
这是finally块。
数据输入:如果输入
2
输出:
请输入分母
2
结果:100/2=50
这是finally块。
2.3抛出异常–throw语句
程序(4)示例:
namespace _46_异常_1_
{
internal class Program
{
static void Main(string[] args)
{
try
{
Console.Write("请输入一个0到10之间的整数:");
int number=Convert.ToInt32(Console.ReadLine());
if (number<0||number>10)
{
throw new IndexOutOfRangeException();
}
else
{
Console.WriteLine("你输入的整数是:{0}", number);
}
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("你输入的整数超出了范围!");
}
finally
{
Console.WriteLine("谢谢");
}
}
}
}
非法数据输入:如果输入
28
输出:
请输入一个0到10之间的整数:28
你输入的整数超出了范围!
谢谢
数据输入:如果输入
9
输出:
请输入一个0到10之间的整数:9
你输入的整数是:9
谢谢