误差应对在代码开发中非常重要,今天跟随教程先学习一下简单的处理。
在模块中增加报错代码
在上一次的学习中,我们跟随教程编写了一个打招呼的模块greetings.go和运行程序hello2.go,当时只是简单的根据输入的人名,生成一句打招呼的句子然后返回。
现在我们要考虑一个问题:如果输入的是一个空字符串,应该如何处理?
自然,我们不可能对空字符串也生成一个打招呼句子,这样显得我们很“蠢”,所以我们需要识别出这种情况,然后给出一定的反馈。
所以修改greetings.go代码:
在这个新代码中,我们添加了一个if语句,判断输入时空字符串的情况,并且使用了一个官方包errors,调用其New函数生成一个报错语句进行返回。所以Hello函数的返回变量变成了两个,一个是打招呼语句,一个是报错信息。如果输入时空串,则打招呼语句为空,报错信息不为空;如果输入是正常人名,则打招呼语句不为空,报错信息为nil。
在运行代码文件中增加处理代码
上面我们在模块中增加了报错的代码,通过函数进行了返回,那么在返回之后我们需要进行进一步的处理,比如打印出来。所以对于运行代码hello2.go也需要进行一些修改:
我们在代码中加入了判断返回值err的if语句,如果err不为空,说明发生了错误,通过log包将错误打印出来;否则才打印打招呼句子。
现在代码的输入是一个空字符串,运行代码会得到报错输出:
将输入改成一个人名,运行代码得到正常的打招呼句子: