可读性:★★★★✰ 理解难度:★★★✰✰
概述
错误处理很重要,但如果它搞乱了代码逻辑,就是错误的做法。
在本章中,将列出编写既整洁有强固的代码,雅致地处理错误代码的一些技巧和思路。
一、try...catch...finally...
try
{
//在此运行代码
}
catch(err)
{
//在此处理错误
}
finally {
finallyCode - 无论 try / catch 结果如何都会执行的代码块
}
function myFunction() {
var message, x
message = document.getElementById('message')
message.innerHTML = ''
x = document.getElementById('demo').value
try {
if (x == '') throw new Error('为空')
if (isNaN(x)) throw new Error('不是一个数字')
if (x > 10) throw new Error('太大')
if (x < 5) throw new Error('太小')
} catch (err) {
message.innerHTML = '输入的值 ' + err.message
} finally {
document.getElementById('demo').value = ''
}
}
学会使用异常处理,让主业务流程和异常处理分离,使得程序的主业务流程更加清晰明了,而不需要在主业务中处理一推错误情况。
二、别返回null、undefined值
// 如果getEmployees返回null、undefined
let employees = getEmployees()
if (employees) {
employees.forEach((item) => {
})
}
// 如果getEmployees返回一个空数组,代码就可以变得更加简洁(不需要进行if空判断)
let employees = getEmployees()
employees.forEach((item) => {
})
当然,还可以使用es6的参数默认值,解决这个问题。
const traverse = (employees = []) {
employees.forEach((item) => {
})
}
let employees = getEmployees()
traverse(employees)
同时,也不要在调用函数时传递null、undefined值。
// 如果方法中没有处理第一个参数空指针的情况,同样会造成程序报错
someMethod(null, parameter1)
三、总结
如果将错误处理独立于主要逻辑之外,就能写出强固而整洁的代码。做到这一步,我们就能单独处理它,也可以极大地提升代码的可维护性。
本文参考《代码整洁之道》(Robert C. Martin著,韩磊译)。
浙江大华技术股份有限公司-软研-智慧城市产品研发部招聘高级前端,欢迎来撩,有意向可发送简历到chen_zhen@dahuatech.com,长期有效
上一篇:六、对象和数据结构
下一篇: 八、边界