8、代码错误处理与健壮性策略

代码错误处理与健壮性策略

1. 代码契约与断言

在代码编写中,我们实际上是在创建某种编码契约。这个契约可能包含一些显而易见的内容,也可能包含一些类似细则的内容。以 UserSettings 类为例,如果其作者使用断言而非检查, getUiColor() 函数可能如下所示:

class UserSettings {
  ...

  // Returns the user's chosen UI color, or null if they haven't
  // chosen one.
  Color? getUiColor() {
    assert(hasBeenInitialized(), “Settings not initialized");    #A
    ...
  }
}
#A The assertion will cause an error or exception to be thrown if the class is used in an invalid way.

对于代码契约中的细则,虽然强制执行它是有好处的,但最好的做法是一开始就避免出现细则。这是因为细则并不是确保其他工程师遵守契约的可靠方式,让事情变得显而易见通常是更好的方法。

2. 错误概述

代码运行的环境往往并不完美,用户可能提供无效输入,外部系统可能崩溃,代码本身也可能存在各种错误。因此,错误是不可避免的,要编写健壮可靠的代码,就必须仔细考虑错误情况。在思考错误时,需要区分软件可能恢复的错误和无法恢复的错误

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值