举例:打开一个不存在的文件时:

>>open("abc.txt","r")
会提示错误

Traceback (most recent call last):
File "D:/project1/test.py", line 11, in <module>
open("abc.txt","r")
FileNotFoundError: [Errno 2] No such file or directory: 'abc.txt'

这时可以用 try....except 语句来捕捉并处理这个异常

try:
open("abc.txt","r")
except FileNotFoundError:
print("出错啦")
----------------------
#这时运行就只会打印“出错啦”

如果将语句换成:

try:
print(a)
except FileNotFoundError:
print("出错啦") ----------------------
Traceback (most recent call last):
File "D:/project1/test.py", line 12, in <module>
print(a)
NameError: name 'a' is not defined

运行时还是报错了,这时因为“FileNotFoundError”是表示找不到文件时的报错,跟现在的“NameError”不符,所以代码改成如下所示就行了:

try:
print(a)
except NameError:
print("出错啦")

但是,在Python中,所有的异常都继承于Exception,自2.5版本之后,出现的新的基类BaseException,新的基类可以接收所有的异常:

try:
print(a)
open("abc.txt","r")
except BaseException:
print("出错啦")
-------------------------
#不管那一行出现异常,都能捕捉到并打印“出错啦”,但是并不能知道哪一行的语句出错,这时我们可以打印异常信息:
try:
print(a)
open("abc.txt","r")
except BaseException as msg:
  print(msg)
  print("出错啦")
-------------------------
[Errno 2] No such file or directory: 'abc.txt'

以下列出Python中常见的异常:

BaseException 新的所有异常类的基类
Exception 所有异常的基类,但继承自BaseException
AssertionError asser语句失败
FileNotFoundError 试图打开一个不存的文件或目录
AttributeError 试图访问的对象没有属性
OSError 当系统函数返回一个系统相关的错误(包括I/O故障),如“找不到文件”或“磁盘已满”时,引发此异常
NameError 使用一个还未赋值对象的变量
IndexError 当一个序列超出范围时引发此异常
SyntaxError 当解析器遇到一个语法错误时引发此异常
KeyboardInterrupt 组合键Ctrl+C被按下,程序被强制终止
TypeError 传入的对象类型与要求不符

异常结合else的用法:

try:
a ="异常测试:"
print(a)
except NameError as msg:
print(msg)
esle:
print("没有异常时执行")
------------------------------
#当出现异常时,打印异常信息“msg”,当没有异常时,执行esle,打印“没有异常时执行”

异常结合finallyd的用法:

try:
print(a)
except NameError as msg:
print(msg)
finally:
print("不管有无异常,都执行finally)

用户自定义的异常抛出 raise:

class loogExcept(Exception):
def __init__(self,leng):
self.leng = leng def __str__(self):
print("你的名字:"+str(self.leng)+",超过长度啦!") def name_Test():
try:
name = input("enter your name:")
if len(name) > 4:
raise loogExcept(len(name))
else:
print(name)
except loogExcept as e_result:
print("捕捉到异常啦")
print("打印异常:",e_result) if __name__ == "__main__":
name_Test()
---------------------------------------------
enter your name:sadsadasd
捕捉到异常啦
打印异常: 你的名字:9,超过长度啦!
你的名字:9,超过长度啦!
Traceback (most recent call last):
File "D:/project1/test.py", line 19, in name_Test
raise loogExcept(len(name))
__main__.loogExcept: <exception str() failed> During handling of the above exception, another exception occurred: Traceback (most recent call last):
File "D:/project1/test.py", line 27, in <module>
name_Test()
File "D:/project1/test.py", line 24, in name_Test
print("打印异常:",e_result)
TypeError: __str__ returned non-string (type NoneType) Process finished with exit code 1

  

  

Python自动化学习--异常提示的更多相关文章

  1. python自动化测试之异常及日志

    为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法. 一.日志 打印日志是很多程序的重 ...

  2. (转)python自动化测试之异常及日志

    为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法. 一.日志 打印日志是很多程序的重 ...

  3. python初步学习-异常

    异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在python无法正常处理程序时就会发生一个异常. 异常是python对象,表示一个错误. 当python脚本 ...

  4. Selenium2+Python自动化学习笔记(第1天)

    参考[http://blog.csdn.net/henni_719/article/details/51096531]大神写的笔记,多谢大神共享. 哈哈,今天又找到一位大神写的Selenium2+Py ...

  5. 【python自动化学习笔记】

    [python自动化第一篇:python介绍与入门] [python自动化第二篇:python入门] [python自动化第三篇:python入门进阶]      [Python自动化第三篇(2):文 ...

  6. Python基础学习----异常

    ''' 异常: 程序在运行的时候,Python的解释器遇到一个错误会停止运行. 并且会提供错误的信息,这就是异常 抛出异常: 程序停止执行并且提示错误信息这个动作就是抛出异常(raise Except ...

  7. python自动化学习笔记10-数据驱动DDT与yml的应用

    在测试工作中,针对某一API接口,或者某一个用户界面的输入框,需要设计大量相关的用例,每一个用例包含实际输入的各种可能的数据.通常的做法是,将测试数据存放到一个数据文件里,然后从数据文件读取,在脚本中 ...

  8. python自动化学习笔记3-集合、函数、模块

    文件操作 上次学习到文件的读写,为了高效的读写文件,我们可以用循环的方式,一行一行的进行读写操作,打开文件的方法是open的方法,打开文件执行完后还要进行关闭操作. 一般的文件流操作都包含缓冲机制,w ...

  9. Python+Selenium学习--异常截图

    前言 Webdriver 提供错误截图函数get_screenshot_as_file(),可以帮助我们跟踪bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取 ...

随机推荐

  1. php 错误提示开启

    开发环境项目,通常需要错误提示:php.ini文件,设置 display_errors = On 项目上线以后,当然不想把错误提示显示. 一般不直接修改php.ini文件,下面两行代码直接加入报错ph ...

  2. Spring Boot 访问到页面返回数据乱码

    在@RequestMapping注解中增加produces="application/json;charset=UTF-8"即可 例如:@RequestMapping(value ...

  3. was安装相关步骤(Linux)

    本次试验目的主要对websphere 二次内部解剖对中间件性能优化垫铺. 1.准备相关文件 其中 iso文件为WAS主要镜像文件(WAS文件所在地) Instalmgr为IBM安装引导程序instal ...

  4. Python学习之==>操作MySQL

    一.简介: MySQL为关系型数据库,其他关系型数据库包括Oracle.DB2.Sql Server等等.Python操作MySQL需要使用到pymsyql模块,pip安装即可. 二.操作MySQL步 ...

  5. AndroChef Java Decompile

    With AndroChef Java Decompiler you can decompile apk., dex, jar and java class-files. It's simple an ...

  6. Python3 多线程编程 threading模块

    性能自动化测试除了用jmeter还可以用python threading模块做 一.threading模块定义 Python 2.4中包含的较新的线程模块为线程提供了更强大的高级支持. 线程模块公开线 ...

  7. Ubuntu新建用户以及安装pytorch

    环境:Ubuntu18,Python3.6 首先登录服务器 ssh username@xx.xx.xx.xxx #登录一个已有的username 新建用户 sudo adduser username ...

  8. 【R】数据结构

    之前一阵子,在EDX上学习了R语言的一门基础课程,这里做个总结.这门课程主要侧重于R的数据结构的介绍,当然也介绍了它的基本的绘图手段. 工作空间相关 ls() ## character(0) rm(a ...

  9. python+selenium操作cookie

    WebDriver提供了操作Cookie的相关方法,可以读取.添加和删除cookie信息. WebDriver操作cookie的方法: get_cookies(): 获得所有cookie信息. get ...

  10. 文件类型 | 命令ln | 软链接硬链接

    1.9文件类型 1.9.1常见文件类型 d:目录 -:普通文件 l:链接文件 b:设备 1.9.2文件后缀名 sh:shell脚本 tar.gz:压缩包 my.cnf:配置文件 test.zip:压缩 ...