18_Python异常处理_全栈开发学习笔记

1. try 与 except

范例1:
单分支

try:
    ret = int(input("number >>>"))
    print(ret*"*")
except ValueError:
    print("您输入的内容有误,请输入一个数字")

执行结果:

number >>>a
您输入的内容有误,请输入一个数字


范例2:多分支

try:
    [][3]
    ret = int(input("number >>>"))
    print(ret*"*")
except ValueError:
    print("您输入的内容有误,请输入一个数字")
except IndexError:
    print("超出列表的最大长度了")

执行结果:

超出列表的最大长度了


范例3:万能异常

try:
    print("1111")
    1/0
    name
    [][3]
    {}["k"]
    ret = int(input("number >>>"))
    print(ret*"*")
except Exception:
    print("你错了,老铁")

执行结果:

1111
你错了,老铁


范例4:else

try:
    print("1111")
    #1/0
    print("2222")
    #name
    #[][3]
    #{}["k"]
    ret = int(input("number >>>"))
    print(ret*"*")
except ValueError:
    print('输入的数据类型有误')
except Exception:
    print("你错了,老铁")
else:
    print("没有异常的时候执行else中的代码")

执行结果:

1111
2222
number >>>11
***********
没有异常的时候执行else中的代码


范例5:finally

try:
    print("1111")
    #1/0
    print("2222")
    #name
    #[][3]
    #{}["k"]
    ret = int(input("number >>>"))
    print(ret*"*")
except ValueError:
    print('输入的数据类型有误')
except Exception:
    print("你错了,老铁")
else:
    print("没有异常的时候执行else中的代码")
finally:
    print("======")

执行结果:

1111
2222
number >>>3
***
没有异常的时候执行else中的代码
======


范例6:finally的文件应用

def func():
    try:
        f = open('file','w')
        ''''''
        return True
    except:
        return False
    finally:
        print('执行finally了')
        f.close()

print(func())

执行结果:

执行finally了
True


范例7:

try:
    print("1111")
    #1/0
    print("2222")
    #name
    #[][3]
    #{}["k"]
    ret = int(input("number >>>"))
    print(ret*"*")
except Exception as error:
    print("你错了,老铁",error)

执行结果:

1111
2222
number >>>aaa
你错了,老铁 invalid literal for int() with base 10: 'aaa'

2. 小结

# 程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
# 使用try和except就能处理异常
    #try是我们需要处理的代码
    #except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
    #except支持多分支
    #有没有一个能处理所有错误的类型 : Exception
        # 有了万能的处理机制仍然需要把能预测到的问题单独处理
        # 单独处理的所有内容都应该写在万能异常之前
    # else : 没有异常的时候执行else中的代码
    # finally : 不管代码是否异常,都会执行
        # finally和return相遇的时候 依然会执行
        # 函数里做异常处理用,不管是否异常去做一些收尾工作
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、错误和异常 1.概念 两种容易辨认的错误​ 语法错误:一些关于语法的错误【缩进】​ 异常:代码完全正确,但是,...
    hollow_02f9阅读 4,944评论 0 0
  • 一、简介 Python最强大的结构之一就是它的异常处理能力,所有的标准异常都使用类来实现,都是基类Exceptio...
    随风化作雨阅读 8,183评论 0 1
  • 本文讲解了python标准异常、什么是异常、异常处理的多种方法和实例等内容,需要的朋友可以参考下 python提供...
    小白python教程阅读 4,990评论 0 2
  • 文 / 言末 一直以来都想去看看大海的颜色,聆听海风激起朵朵浪花的声音,去了广东三次也没有找到一个合适的机会,所以...
    言谟说阅读 3,030评论 0 3
  • 那年雨季 我给你写了封信 如何送给你 费尽了心思 我想在上学的路上送给你 可几天都没碰见你 焦燥的心如火烤般 彻夜...
    奉新余长青阅读 1,573评论 0 0