赞
踩
open('test.txt', 'r')
运行效果:
- try:
- 可能发⽣错误的代码
- except:
- 如果出现异常执⾏的代码
- try:
- 可能发⽣错误的代码
- except 异常类型:
- 如果捕获到该异常类型执⾏的代码
示例代码:
- try:
- print(num)
- except NameError:
- print('有错误')
1. 如果尝试执⾏的代码的异常类型和要捕获的异常类型不⼀致,则⽆法捕获异常。
2. ⼀般try下⽅只放⼀⾏尝试执⾏的代码。
- try:
- print(1)
- except Exception as result:
- print(result)
- else:
- print('我是else,是没有异常的时候执⾏的代码')
- try:
- f = open('test.txt', 'r')
- except Exception as result:
- f = open('test.txt', 'w')
- else:
- print('没有异常,真开⼼')
- finally:
- f.close()
在程序执行过程中,如果有多重except判断的话,可以使用多次except。
示例代码1:
- def func():
- tmp = 0
- try:
- tmp = tmp / 0
- print(num) # ⼀般try下⽅只放⼀⾏尝试执⾏的代码,出现异常的语句后,下面的语句不再执行
- tmp = tmp + 1
- except NameError as e:
- print(e)
- except ZeroDivisionError as e:
- print(e)
- except Exception as e:
- print(e)
- else:
- print("I am OK!")
- finally:
- print("End the program!")
- return tmp
-
-
- ret = func()
- print(ret)
运行结果:
示例代码2:
- def func():
- tmp = 0
- try:
- # tmp = tmp / 0
- print(num) # ⼀般try下⽅只放⼀⾏尝试执⾏的代码,出现异常的语句后,下面的语句不再执行
- tmp = tmp + 1
- except NameError as e:
- print(e)
- except ZeroDivisionError as e:
- print(e)
- except Exception as e:
- print(e)
- else:
- print("I am OK!")
- finally:
- print("End the program!")
- return tmp
-
-
- ret = func()
- print(ret)
运行结果:
示例代码3:
- def func():
- tmp = 0
- try:
- # tmp = tmp / 0
- # print(num) # ⼀般try下⽅只放⼀⾏尝试执⾏的代码,出现异常的语句后,下面的语句不再执行
- tmp = tmp + 1
- except NameError as e:
- print(e)
- except ZeroDivisionError as e:
- print(e)
- except Exception as e:
- print(e)
- else:
- print("I am OK!")
- finally:
- print("End the program!")
- return tmp
-
-
- ret = func()
- print(ret)
运行结果:
1. 尝试只读⽅式打开test.txt⽂件,如果⽂件存在则读取⽂件内容,⽂件不存在则提示⽤户即可。
2. 读取内容要求:尝试循环读取内容,读取过程中如果检测到⽤户意外终⽌程序,则 except 捕获异常并提示⽤户。
- import time
- try:
- f = open('test.txt')
- try:
- while True:
- content = f.readline()
- if len(content) == 0:
- break
- time.sleep(2)
- print(content)
- except:
- # 如果在读取⽂件的过程中,产⽣了异常,那么就会捕获到
- # ⽐如 按下了 ctrl+c
- print('意外终⽌了读取数据')
- finally:
- f.close()
- print('关闭⽂件')
- except:
- print("没有这个⽂件")
- # ⾃定义异常类,继承Exception
- class ShortInputError(Exception):
- def __init__(self, length, min_len):
- self.length = length
- self.min_len = min_len
-
- # 设置抛出异常的描述信息
- def __str__(self):
- return f'您输⼊的⻓度是{self.length}, 不能少于{self.min_len}个字符'
-
-
- def main():
- try:
- con = input('请输⼊密码:')
- if len(con) < 3:
- raise ShortInputError(len(con), 3)
- except Exception as result:
- print(result)
- else:
- print('密码已经输⼊完成')
-
-
- main()
运行结果:
示例代码:
- # try语句的使用
- try:
- print("程序正常运行。。。")
- except KeyError:
- print('key error错误。。。')
- else:
- print("程序未产生异常时则运行当前代码。。。")
- finally:
- print("程序无论是否出现异常都执行此语句。。。")
-
-
- # 程序正常运行。。。
- # 程序未产生异常时则运行当前代码。。。
- # 程序无论是否出现异常都执行此语句。。。
运行结果:
注意在下面几种情况中return的返回值。
示例代码:
- # 在函数中使用try语句
- def func_try_except():
- try:
- print("程序正常运行。。。")
- return 1
- except KeyError:
- print('key error错误。。。')
- return 2
- else:
- print("程序未产生异常时则运行当前代码。。。")
- return 3
- finally:
- print("程序无论是否出现异常都执行此语句。。。")
- # 如果finally中出现return,则优先返回finally中的返回值
- return 4
-
-
- res = func_try_except()
- print(res)
-
- # 程序正常运行。。。
- # 程序无论是否出现异常都执行此语句。。。
- # 4
-
- print("*" * 100)
-
-
- # 在函数中使用try语句
- def func_try_except2():
- try:
- print("程序正常运行。。。")
- return 1
- except KeyError:
- print('key error错误。。。')
- return 2
- else:
- print("程序未产生异常时则运行当前代码。。。")
- return 3
- finally:
- print("程序无论是否出现异常都执行此语句。。。")
- # 如果finally中出现return,则优先返回finally中的返回值
- # return 4
-
-
- res2 = func_try_except2()
- print(res2)
-
- # 程序正常运行。。。
- # 程序无论是否出现异常都执行此语句。。。
- # 1
-
- print("*" * 100)
-
-
- # 在函数中使用try语句
- def func_try_except3():
- try:
- print("程序正常运行。。。")
- raise KeyError
- return 1
- except KeyError:
- print('key error错误。。。')
- return 2
- else:
- print("程序未产生异常时则运行当前代码。。。")
- return 3
- finally:
- print("程序无论是否出现异常都执行此语句。。。")
- # 如果finally中出现return,则优先返回finally中的返回值
- # return 4
-
-
- res3 = func_try_except3()
- print(res3)
- # 程序正常运行。。。
- # key error错误。。。
- # 程序无论是否出现异常都执行此语句。。。
- # 2
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。