以我自己的职业经历来说,我情愿自己去针对一项重现写代码,也不愿意去承接别人的代码。我想,这是大部分码农的心声吧。
这其中的原因有很多种,但让人糟心的代码的原因排第一位的肯定是追溯其的逻辑特别的困难,那排第二绝对是出了问题定位原因特别困难。
之所以会定位问题原因难,最根本的是代码编写者缺少的是“异常”处理思维。
1.语法格式
我们开始从Python的异常语法格式开始吧。
从上图可以看到以下信息:
- 四个关键词:try、except、else、finally;
- 支撑多异常监控。
其中,
- try 块包含着可能引发异常的代码;
- except 块则用来捕捉和处理发生的异常;
- 如果 try 块中没有抛出异常,则执行 else 块;
- finally 块无论是否发生异常都会被执行;通常用来释放 try 块中申请的资源。
我们一直知道程序代码中,有的关键词是必须要的,有的是非必须的。根据上面语法格式,我没可以问自己:是否可以有多重组合形式呢?
2.try... 一个 except 结构
还是以一个测试0 不能做除数的异常捕捉案例。具体代码及执行效果如下图:
代码逻辑及执行结果:
- 接收键盘输入的数字作为除数与被除数;
- try模块中用两个print语句来验证是否执行除法运算;
- 由于z = x / y引发来异常,所以其后的print语句未被执行;
- except模块调用Python中的系统异常BaseException,打印出异常信息。
3.try... 多个 except 结构
针对上述案例,我们可以进一步捕捉更多详细的异常。如下图:
4.try...except...else 结
再进一步的话,针对try正常执行后,通过else来控制一些语句块的执行。见下图:
5.try...except...finally 结构
最后,总是会碰到不管tyr还是Except的执行结果如何都要执行的语句块,这是后finally就派上用场了。见下图:
总结
- Python异常处理语法中出现四个关键词(try、except、else、finally);
- 可以拆分出四种结构。