当前位置: 移动技术网 > IT编程>脚本编程>Python > Python基础:异常处理

Python基础:异常处理

2019年05月29日  | 移动技术网IT编程  | 我要评论

黑泽亚美,食用盐保质期,章子怡温馨牵继女

如何处理异常

  无论发生什么情况,finally block 中的语句都会被执行,哪怕前面的 try 和 excep block 中使用了 return 语句。
import sys
try:
    f = open('file.txt', 'r')
    #.... # some data processing
except oserror as err:
    print('os error: {}'.format(err))
except:
    print('unexpected error:', sys.exc_info()[0])
finally:
    f.close()
  假如不存在file.txt文件,则finally语句会抛出以下异常
traceback (most recent call last):
  file ".\errorhandle.py", line 24, in <module>
    f.close()
nameerror: name 'f' is not defined
  文件读写最好使用with open
import sys,os
infile = 'file.txt'
if not os.path.exists(infile):
    print(f'file {infile} not exist')
    sys.exit()
with open(infile, 'r') as fin:
    fin.read()

用户自定义异常

class myinputerror(exception):
    """exception raised when there're errors in input"""
    def __init__(self, value): # 自定义异常类型的初始化
        self.value = value
    def __str__(self): # 自定义异常类型的 string 表达形式
        return ("{} is invalid input".format(repr(self.value)))
    
try:
    raise myinputerror(1) # 抛出 myinputerror 这个异常
except myinputerror as err:
    print('error: {}'.format(err))

  执行代码块结果:

error: 1 is invalid input

 参考资料:

  极客时间《python核心技术与实战》

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网