Python----异常处理.

异常处理:顾名思义报错处理方法,目的是虽然程序出错,但此错不想让用户看到。

一次可以对单个异常处理,也可以多个一起处理,或可以捕捉所有所有异常,异或自定义异常。

常见异常类型:

AttributeError  属性异常   IOError 输入/输出异常  ImportError 导入错误  IndentationError 缩进异常 

IndexError  下标索引超出序列边界  KeyError 访问字典中不存在的键  KeyboardInterrupt Crtl+C被按下

NameError 使用一个还未被赋予对象的变量    SyntaxError Python  语法错误    TypeError 类型错误

unboundLocalError

ValueError  数值用法异常  

用法:

1.抓取一个错误

#KeyError and IndexError
book={}
names=['xiaohua','xiaoming']
try:
    book['bookname1']  # 抓单独错误
    names[2]
except Exception as e:    #抓住所有错误,但不能定位,一般放在最后
    print("出错了",e)
try:
    #book['bookname1']   #抓单独错误
    names[2]
except KeyError as e:      #KeyError为字典错误
    print("没有这个key",e)
except IndexError as e:      #IndexError为列表错误
    print("列表操作错误",e)

#ValueError
a="Sun Dapeng"
try:
    int(a)
except ValueError as e:
    print(e)

2.合并错误类型写法

#合并错误类型
book={}
names=['xiaohua','xiaoming']
try:
    book['bookname1']
    names[2]
except (KeyError,IndexError) as e:   #按顺序抓取要求错误,抓到错误截止
    print(e)

3.抓取所有错误

#抓取所有错误
try:
    open("abc.txt")
except Exception as e:    #抓住所有错误,但不能定位,一般放在最后
    print("出错了",e)
else:
    print("一切正常")
finally:
    print("不管有没有错都执行")

4.自定义异常

自定义异常
class XiaoError(Exception):
     def __init__(self,msg):    #异常报错的内容
         self.message=msg
try:
    raise XiaoError ('Pycharm无法启动')     #触发错误
except XiaoError as e:   #抓住异常,e(Pycharm无法启动) 
    print(e)

阅读更多

没有更多推荐了,返回首页