【python】错误/异常处理,调试,测试
try:
print('try')
r=10/2
print('result is:',r)
#发生错误,会执行这部分
except ValueError as e:
print('ValueError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
finally: #无论有没有发生错误,都执行
print("finally")
Python的错误其实也是class,所有的错误类型都继承自BaseException
捕获错误的类型,也涵盖其子类
https://docs.python.org/3/library/exceptions.html#exception-hierarchy
一般不知道具体的错误,就可以写最外层的错误类,Exception
except Exception as e:
print('aaa:',e)
调用堆栈:
错误演示:
def foo(s):
return 10 / int(s) def bar(s):
return foo(s) * 2 def main():
bar('') main()
Traceback (most recent call last): #出错信息追踪
File "E:/pyfile/httpauto/ceshi.py", line 10, in <module>
main()
File "E:/pyfile/httpauto/ceshi.py", line 8, in main
bar('')
File "E:/pyfile/httpauto/ceshi.py", line 5, in bar
return foo(s) * 2
File "E:/pyfile/httpauto/ceshi.py", line 2, in foo
return 10 / int(s)
ZeroDivisionError: division by zero
记录错误:
如果不容错的话,出错了程序会自动断掉,然后用堆栈的方式,打印出错误信息。如果容错,就可以打出错误并且不影响程序继续执行
调试
方法一:print()把变量一个个打印出来
方法二:增加断言assert
def foo(s):
n=int(s)
assert n!=0,'n is zero!' #断言为true,继续执行
return 10/n def main():
foo('') main()
方法三:替换为logging
【python】错误/异常处理,调试,测试的更多相关文章
- python 错误、调试、单元测试、文档测试
错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 参考链接:https:// ...
- python 错误、调试和测试
在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...
- Python错误、调试和测试
try: print('try...') r = 10 / int('a') print('result:', r) except ValueError as e: print('ValueError ...
- python错误处理/调试/单元测试/文档测试
一.错误处理 1.错误处理 try: ... except Exception1: ... except Exception2: ... finally: ... 如果在try中发生错误,那么exce ...
- python错误、调试、测试
1.错误, Python内置的try...except...finally用来处理错误十分方便.出错时,会分析错误信息并定位错误发生的代码位置才是最关键的. 程序也可以主动抛出错误,让调用者来处理相应 ...
- python错误和调试
在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...
- Python:笔记(5)——错误、调试和测试
Python:笔记(5)——错误.调试和测试 错误处理 1.TRY语句 这个和Java中的语法是及其相似的,catach换成except. 说明:同样,不管有没有错误,fianlly都会执行的! 补充 ...
- python中错误、调试、单元测试、文档测试
错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 普通的错误处理机制就是在出 ...
- 004-python面向对象,错误,调试和测试
---恢复内容开始--- 1.面向对象 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...
- python: 错误处理try详解 ,traceback调用栈, 调试(logging)
摘录:https://www.liaoxuefeng.com/wiki/1016959663602400/1017598873256736 错误处理 调试 错误处理 高级语言都会使用内置的一套try. ...
随机推荐
- JOIN关联表中ON,WHERE后面跟条件的区别
select * from td left join (select case_id as sup_case_id , count(*) supervise_number from td_kcdc ...
- 一个servlet处理多个功能
servlet中: String servletPath = request.getServletPath(); String methodName = servletPath.substring(1 ...
- Java 执行系统命令
在Java中执行系统命令,主要是使用ProcessBuilder和Runtime.getRuntime().exec().而在这里主要是介绍两种方法的使用. 使用情景是在linux系统中,使用menc ...
- centos6.8服务器部署svn
1. 安装svn yum list svn* yum install subversion 2. 测试svn安装是否成功 svnserve –version 3. 创建代码仓库 mkdir /usr/ ...
- 根据条件动态拼接LinQ的where条件字串
var items1 = from c in customer == ? c.FirstName == == ? c.LastName == "BBB" : true) selec ...
- SPSS数据分析—对应分析
卡方检验只能对两个分类变量之间是否存在联系进行检验,如果分类变量有多个水平的话,则无法衡量每个水平间的联系.对此,虽然可以使用逻辑回归进行建模,但是如果分类变量的水平非常多,就需要分别设定哑变量,这样 ...
- 即时反应的input和propertychange方法
在web开发中,我们有时会需要动态监听输入框值的变化,当使用onkeydown.onkeypress.onkeyup作为监听事件时,会发现一些复制粘贴等操作用不了,同时,在处理组合快键键的时候也很麻烦 ...
- thinkPHP的用法之创建新项目
1 配置文件中 新增数组元素:'DEFAULT_APPS'=> array('api', 'admin', 'home', 'megagame'), 2 新增样式变量 在view.class.p ...
- webform LinQ
LINQ,语言集成查询(Language Integrated Query)是一组用于c#和VB语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. 他是一个 ...
- C# WebForm内置对象2+Repeater的Command
内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及 ...