少说话多写代码之Python学习045——类07(异常)

栏目: Python · 发布时间: 5年前

内容简介:异常是程序遇到错误了,这种错误有的是已知的,可预判的。有些是未知的,莫名其妙的。比如,输出

异常是程序遇到错误了,这种错误有的是已知的,可预判的。有些是未知的,莫名其妙的。

比如,

s=1/0
print(s)

输出

Traceback (most recent call last):
  File "D:/work/Python/Class7.py", line 4, in <module>
    s=1/0
ZeroDivisionError: division by zero

对于一段代码,如果认为可能出现异常,可以对整段代码进行捕获异常。

try:
    b=0
    s=1/b
    print(s)
except Exception:
   print('出现异常:没有区分异常的种类')

输出

出现异常:没有区分异常的种类

捕获异常后可以像上面这样打印一个提示,也可以用raise抛出。交由调用的地方去捕获或者处理。

完整的异常捕获其实是这样,

try:
    b=0
    s=1/b
    print(s)
except Exception:
   print('出现异常:没有区分异常的种类')
finally:
    b=1
    s=1/b
    print(s)

输出

出现异常:没有区分异常的种类
1.0

上面代码中except Exception:处,可以有多个 except,比如,except  ZeroDivisionError:。有兴趣可以试试。

对于异常的语法其实大可不必深究和钻研,只需要会在你认为可能出错的地方捕获,然后处理或者抛出异常即可。

捕获异常有一个强大手段就是捕获所有异常,叫Exception,当然很多 程序员 认为捕获所有异常无法彰显出自己的技术是多么的牛逼,所以,会用一用一些编程语言中创建好的有针对性的异常,比如 Python 中有这些是创建好的异常。

Exception,任何异常

AttributeError,引用或则赋值失败异常

IOError,打开不存在的文件的异常

IndexError,使用序列中不存在的索引的异常

KeyError,使用映射中不存在的key的异常

NameError,找不到变量的异常

SyntaxError,代码形式错误的异常

TypeError,函数应用错误的类型的异常

ValueError,对象使用不合适的值的异常

ZeroDivisionError,除数为0的异常

对于有些程序员来说使用库里创建的异常不算本事,所以也可以自己创建异常。哎,如果碰到秀技术的也确实没办法,所以为了万一碰到也好读懂代码,可以简单了解下自定义异常。

class MySelfException(Exception):
    pass
e=MySelfException

使用MySelfException和使用Exception一样。

对于异常,有的时候需要捕获自己处理,但是有的时候宁可让异常抛出甚至中断程序,因为如果为了程序不崩溃而增加异常捕获,会导致有些错误无法知道,从而导致运算结果完全错误,这样造成的结果也许远比程序崩溃要大的多。

工程文件下载: https://download.csdn.net/download/yysyangyangyangshan/10792410


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web界面设计

Web界面设计

Bill Scott、Theresa Neil / 李松峰 / 电子工业出版社 / 2009年7月 / 80.00元

当前的Web已经进入崭新的时代!本书涵盖了在基于独一无二的Web环境下、在创建丰富体验的过程中设计Web界面的最佳实践、模式和原理。UI专家Bill Scott和Theresa Neil在他们多年实践经验和不懈探索的基础上,总结提炼出了Web界面设计的六大原理——直截了当、简化交互、足不出户、提供邀请、使用变换和即时反应,并以这六大原理为依托,以当今Web上各类开风气之先的流行网站为示例,向读者展......一起来看看 《Web界面设计》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具