C#异常与调试

1. 错误信息打印
IDE操作
VSConsole.Write(); Console.WriteLine();
UnityDebug.Log(“”); Debug.LogError(“”); Debug.LogWarn(“”)
2. 断点

点击调试-窗口-断点,这个窗口显示了所有断点。

3. 监视变量

在中断模式下,通过调用堆栈和即时窗口查看

窗口描述
调用堆栈窗口我们可以观察到当前代码执行到哪一行了,并且可以看到这个代码的是被什么语句调用的
即时窗口输入变量名—-查看变量的值,给变量赋值——-修改变量的值,输入表达式查看结果
4. 错误异常
try
{
    //可能出现异常的语句
    //若try中一行发生异常,那么接下来的代码就不执行
}
catch( <exceptionType> e )
{
    //异常出现以后并且异常被捕获;如果catch块的参数不写,表示发生任何异常都执行这个catch块
}
catch
{
    //捕获所有异常
}
finally
{
    //始终会执行
}

其中catch块可以有0或者多个,finally可以有0或者1个
但是如果没有catch块,必须有finally块,没有finally块,必须有catch块,catch块和finally块可以同时存在

5.异常类

System.ApplicationExceptionSystem.SystemException 类是派生于 System.Exception 类的异常类。
System.ApplicationException 类支持由应用程序生成的异常。所以程序员定义的异常都应派生自该类。
System.SystemException 类是所有预定义的系统异常的基类。

常见的异常类

异常类描述
System.IO.IOException处理 I/O 错误
System.IndexOutOfRangeException处理当方法指向超出范围的数组索引时生成的错误
System.ArrayTypeMismatchException处理当数组类型不匹配时生成的错误
System.NullReferenceException处理当依从一个空对象时生成的错误
System.DivideByZeroException处理当除以零时生成的错误
System.InvalidCastException处理在类型转换期间生成的错误
System.OutOfMemoryException处理空闲内存不足生成的错误
System.StackOverflowException处理栈溢出生成的错误。
System.Exception处理所有异常
6. 自定义异常
//1. 定义异常类。继承自ApplicationException
//2. 在自定义的类中逻辑语句,抛出(throw 异常类)异常
//3. 调用该自定义类时,遇到异常,自动抛出,捕获异常
namespace UserDefinedException
{
   class TestTemperature
   {
      static void Main(string[] args)
      {
         Temperature temp = new Temperature();
         try
         {
            temp.showTemp();
         }
         catch(TempIsZeroException e)
         {
            Console.WriteLine("TempIsZeroException: {0}", e.Message);
         }
         Console.ReadKey();
      }
   }
}
public class TempIsZeroException: ApplicationException
{
   public TempIsZeroException(string message): base(message)
   {
   }
}
public class Temperature
{
   int temperature = 0;
   public void showTemp()
   {
      if(temperature == 0)
      {
         throw (new TempIsZeroException("Zero Temperature found"));
      }
      else
      {
         Console.WriteLine("Temperature: {0}", temperature);
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值