断言是被用来检查非法情况而不是错误情况,即在该程序正常工作时绝不应该发生的非法情况,用来帮助开发人员对问题的快速定位。异常处理用于对程序发生异常情况的处理,增强程序的健壮性、容错性,减少程序使用中对用户不有好的行为,不让(通常也不必)用户知道发生了什么错误。
通常在Unity开发过程中,经常有一堆外部参数需要配置,但是总会有时候忘记配置一部分参数,这个时候运行起来就会报错。稍微好点的做法是在代码中写
if(xxx == Null)
{
Debug.Log("xxxxxx");
}
然后再把参数传递进入,再运行,好了不报错了。但是如果需要判断的内容很多就需要写很多if判断。这样效率十分低下,有没有办法在不运行的情况下检查参数有没有配置完全呢。
答案是有的,使用 OnValidate()。然后使用Unity自带的Assert类就可以避免代码里面写一大堆if。Assert里面还有很多有用的API。
写上图中代码后。可以看到在不运行的时候控制台就会报错。这点对策划来说非常友好。
使用断言可以大幅提高安全性和稳定性。在出错的时候可以快速定位。也免去了写一大堆Debug的烦恼。关键是写Debug后期免不了进行删除。因为大量的Debug是很消耗GC的。程序中要尽量少使用字符串相关的东西。