13.困难重重
慢慢的 开始有些感悟了 总感觉自己写程序有些吃力 本以为自己写好了一段代码 并且经过自己的认真检查之后,运行之后却发现事与愿违,一大堆Bug出现。此时的你内心无比崩溃,但是面对这么多行的代码,该怎么去找到错误的地方,并且修改他呢?
确实在很多情况下,写代码不是一件难的事情,而真正难的是要你去读懂代码的逻辑以及能够快速处理Bug的能力,在设计代码的时候脑海里能有一个很好的结构,使得程序有很好的规范性,不会一团乱糟。修改起来就像无头苍蝇一样。
其实在PyCharm中有专门用来调错的功能 ---- Debug
这个功能很重要 在日常工作中基本不可缺失
在你写好代码之后 右击运行debug 程序会在你错误的地方停留下来。
当你得知你错误的地方之后 你可以进一步的确定问题所在 并打下断点。
具体操作和用法需要时间的累计和经验。
在程序内部捕捉异常
这个问题很常见,为什么说要捕捉异常呢,在处理一个实际的业务问题中,难免会出现各种各样的问题,有些问题是在我们意料之外,有些问题是在我们计划之中
但如果说我们没有捕捉异常这一功能,对程序的设计和复杂度就更高了。
列举常见的8类错误 但是远不止这8类错误:
1.SyntaxError:语法错误
2.NameError:试图访问的变量名不存在
3.IndexError:索引错误,使用的所以你不存在,常为索引超出序列范围
4.KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误
5.TypeError:类型错误,内建操作或是函数应于在错误类型的对象时会引发类型错误
6.ValueError:值错误,传给对象的参数类型不正确,例如给int()函数传入了字符串数据类型
7.AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
8.IOError:输入输出错误
写法:
1.单个异常捕捉
try: n = a except NameError: print('访问的变量名不存在')
2.多个异常捕捉 并且打印具体的异常信息
try: ... except Error1 as e: print(e) except Error2 as e: print(e)
3.完整结构
try: ... except exception1: ... except exception2: ... except: ... else: ... finally: ...
执行的过程为:
4.自定义抛出异常
raise 抛出对象
这里这种方法本身不太具备实际意义 可以理解为Python已经写好了这个对象,如果你想去自定义一个对象让后将他抛出,也是ok的,but我们没必要这么去做。