区分Error handling和Debugging
 
前者指代码放入运行环境后出现的无法预测的错误,如权限问题、数据库改变、服务(server)关闭
 
后者指代码本身的错误
 
 
 
error types:syntax errors 语法错误、runtime errors(如ZeroDivisionError)、logic errors(单元测试和驱动测试开发可以自动找出逻辑错误,可以看看python里的unit test;堆栈追踪)
 
runtime error:
 
比如当服务器关闭、用户输入错误等无法预测的情况出现导致代码无法运行,就可以使用try/except/finally。
 
x=42
y=0
try:
    print(x/y)
except ZeroDivisionError as e:
    print('not allowed to divid by zero')
else:
    print('something else wrong')
finally:
    print('this is our cleanup code') 
输出如下
 
not allowed to divid by zero
this is our cleanup code