世界人都知道,程序总会有bug存在.复杂点的bug一般人不能一眼看出,这就一要一套调试程序的手段. 方法一:使用print()函数直接打印: >>> def foo(s): ... n = int(s) ... print(n) ... return 10 / n ... >>> def main(): ... foo(') ... >>> main() 0 Traceback (most recent call last): File "&…
raise: raise语句手工引发一个异常:,这样做程序不会因异常而终止,而是运行报错 1 "raise" [expression ["," expression ["," expression]]] def fun(x,y): if y == 0: raise ZeroDivisionError('y besides 0') return x / y >>>fun(2,0) #报错信息 raise ZeroDivisionE…
1.错误, Python内置的try...except...finally用来处理错误十分方便.出错时,会分析错误信息并定位错误发生的代码位置才是最关键的. 程序也可以主动抛出错误,让调用者来处理相应的错误.但是,应该在文档中写清楚可能会抛出哪些错误,以及错误产生的原因. 处理错误:try...except...finally 调用栈:出错的时候,一定要分析错误的调用栈信息,才能定位错误的位置. 记录错误: # err_logging.py    import logging def foo(s…
调试 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: >>> def foo(s): n= int(s) print '>>> n = %d' % n return 10 / n >>> def main(): foo('0') >>> main() >>> n = 0 Traceback (most recent call last): File "<pyshell#2…
摘录:https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736 错误处理 调试 错误处理 高级语言都会使用内置的一套try...except...finally...的错误处理机制, 可以更高效的处理错误, 无需程序员自己写错误处理的代码. try try: print('try...') r = 10 / int(') print('result:', r) except ValueError as e: print(…
参考:Pdb- Python的调试器 pdb 模块定义了一个交互式源代码调试器,用于 Python 程序.它支持在源码行间设置(有条件的)断点和单步执行,检视堆栈帧,列出源码列表,以及在任何堆栈帧的上下文中运行任意 Python 代码.它还支持事后调试,可以在程序控制下调用. Pdb的调用 用pdb调试有多种方式可选: 命令行 python3 -m pdb myscript.py Python交互环境 >>> import pdb >>> import mymodule…
无论谁写的程序,必定会存在bug,解决bug需要我们去调试程序.于是乎,在Python中,就会好几种调试手段,如print.assert.logging.pdb.pdb.set_trace() 一.使用print()函数直接打印 >>> def foo(s): ... n = int(s) ... print(n) ... return 10 / n ... >>> def main(): ... foo(') ... >>> main() 0 Tra…
########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,<数据>:捕获指定异常及其附加的数据 except:<异常名1,异常名2>:<数据>:捕获异常名1或者异常名2,及附加的数据库 常用异常名: 异常名…
错误处理(try...except...finally...) try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionError as e: print('except:', e) finally: print('finally...') print('END') # try... # except: division by zero # finally... # END # 可以使用多个except来捕捉不…
try: print('try...') r = 10 / int('a') print('result:', r) except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) finally: print('finally...') print('END') try: print('try...') r = 10 / 0 print('…