状态码
错误码
断言
内部断言,用来检查内部错误,属于意料之外的错误,即认为这个错误不会发生,但实际现实由于失误或其他原因确实有可能发生,又不知道具体是在哪里因为什么发生,用断言。出现断言意味着这个程序需要更新了,修复BUG了。解决之后此问题不会再发生,而异常的“解决”不是本质上的,通常会再次发生。
异常
外部错误,较高层函数或类等使用异常,通常是预测会遇到的问题,但是不能解决或尝试 解决失败,已经无能为力,需要靠外部来解决的问题.
进行内部逻辑检查还是外部合法检查,需要考虑被检测的数据是否已经检测过了,如果没有检测过或者不一定检测过,则归为外部合法检查,使用throw抛出异常
进行内部逻辑检查还是外部合法检查,需要考虑被检测的数据是否已经检测过了,如果没有检测过或者不一定检测过,则归为外部合法检查,使用throw抛出异常
配合,相信,假定,只存在于内部,一个对象,个体的内部,对外保持不信任原则
对内信任也需要基本检查,可以在release时撤销,因为内部也有可能犯错,对外则永远保存
就算是引用类型参数也不一定安全,又可能不小心返回一个空指针没有检查,引用传递过来就是空引用了
合法性,有效性检查,是必须存在的,但是方式可以变换,要求的原则是对于无效参数,不合法参数的立刻反应,而不让非法数据跑远,只要保证进来立刻发现定位到就可以了,不过有没有好的办法?所以内部检查一切ASSERT 或 debug版的throw吧
如果能处理,或者应该处理,那么使用状态码,错误码, 如果确实没有办法解决,那么使用异常,应该捕获,至少在事件发起处进行捕获