程序调试
编辑器调试
//根据vs的代码提示来解决一些语法问题,能够快速的修正自己的代码
比如这样
调试器调试
断点调试
设置断点
错误位置
查看程序到哪一步
删除断点
把那个红色小圆点再点一下
异常处理
一些异常类
System.IO.IOException 处理 I/O 错误。
System.IndexOutOfRangeException 处理当方法指向超出范围的数组索引时生成的错误。
System.ArrayTypeMismatchException 处理当数组类型不匹配时生成的错误。
System.NullReferenceException 处理当依从一个空对象时生成的错误。
System.DivideByZeroException 处理当除以零时生成的错误。
System.InvalidCastException 处理在类型转换期间生成的错误。
System.OutOfMemoryException 处理空闲内存不足生成的错误。
System.StackOverflowException 处理栈溢出生成的错误。
try...catch
try{
监控的代码
}
catch(异常类名 异常变量名)
{
异常处理
}
try....catch...finally
try{
监控的代码
}
catch(异常类名 异常变量名)
{
异常处理
}
finally
{
程序代码//必须执行的代码
}
throw
throw语句用于主动引发一个异常
//练习
static int MyInt(string a,string b)
{
int n1;
int n2;
int num;
try
{
n1 = int.Parse(a);
n2 = int.Parse(b);
if (n2 == 0)
{
throw new DivideByZeroException();
}
num = n1 / n2;
return num;
}
catch (DivideByZeroException de){
Console.WriteLine("异常");
Console.WriteLine(de.Message);
return 0;
}
}
static void Main(string[] args)
{
try
{
Console.WriteLine("亲输入str1");
string str1 = Console.ReadLine();
Console.WriteLine("亲输入str2");
string str2 = Console.ReadLine();
Console.WriteLine("值为" + MyInt(str1, str2));
}
catch (FormatException){
Console.WriteLine("格式·");
}
Console.ReadKey ();
异常的使用规则
//不要过度使用异常,会影响程序的执行效率
//不要使用过于多的try..catch,要不然会增加try检测到异常的概率,增加解析异常的难度