美文网首页
Python高级-异常处理

Python高级-异常处理

作者: Yuanshuo | 来源:发表于2019-07-18 05:03 被阅读0次
The core values of Chinese socialism

异常

  • 广义上的错误分为错误和异常
    • 错误指的是可以人为避免的
    • 异常是指在语法和逻辑正确的前提下,出现的问题
    • 在Python里,异常是一个类,可以处理和使用

异常处理

  • 不能保证程序永远正确运行
  • 必须保证程序在最坏的情况下得到的问题被妥善处理
  • Python的异常处理模块全部语法:
    try:
        尝试实现某个操作,
        如果没出现异常,任务就可以完成
        如果出现异常,将异常从当前代码块扔出去尝试解决异常
    
    except 异常类型1:
        解决方案1:用于尝试在此处处理异常解决问题
    except 异常类型2:
        解决方案3:用于尝试在此处处理异常解决问题
    
    except (异常类型3, 异常类型4):
        解决方案:针对多个异常使用相同的处理方式
    
    except :
        解决方案:所有异常的解决方案
        
    else:
        如果没有出现异常,将会执行此处代码
        
    finally:
        管你有没有错误都要执行的代码
        
    
# 简单异常案例
try:
    num = int(input("Plz input your number:"))
    rst = 100/num
    print("result = {}".format(rst))
except:
    print("你TM输的啥玩意!!!")
    
    #exit()退出程序
    exit()
Plz input your number:0
你TM输的啥玩意!!!


ERROR:root:Invalid alias: The name clear can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name more can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name less can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name man can't be aliased because it is another magic command.
# 简单异常案例
#给出提示信息
try:
    num = int(input("Plz input your number:"))
    rst = 100/num
    print("result = {}".format(rst))
    
# 捕获异常后,把异常实例化,出错信息在实例化里
# 注意以下写法
# 以下语句是捕获ZeroDivisionError异常并实例化实例e
# 在异常类继承关系中,越是子类的异常,越要往前放,越是父类的异常,越要往后放

# 在处理异常的时候,一旦拦截到某一个异常,则不再继续往下查看except,有finally则执行finally语句块,否则就执行下一个大语句
except ZeroDivisionError as e:
    print("你TM输的啥玩意!!!")
    print(e)
    exit()
    
except NameError as e:
    print("名字起错了")
    print(e)
    exit()
    
except AttributeError as e:
    print("属性有问题")
    print(e)
    exit()

# 所有异常都是继承自Exception,任何异常都会拦截  
# 而且一定是最后一个except
except Exception as e:
    print("不知道什么错!")
    print(e)
    exit()
    
finally:
    print("我肯定会被执行的")
    
Plz input your number:0
你TM输的啥玩意!!!
division by zero
我肯定会被执行的


ERROR:root:Invalid alias: The name clear can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name more can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name less can't be aliased because it is another magic command.
ERROR:root:Invalid alias: The name man can't be aliased because it is another magic command.

相关文章

  • python学习笔记之--异常处理

    类似于C++/Java等高级语言,python也有异常的处理机制 异常捕获和处理 在python语言中python...

  • Python高级-异常处理

    异常 广义上的错误分为错误和异常错误指的是可以人为避免的异常是指在语法和逻辑正确的前提下,出现的问题在Python...

  • python的异常处理

    Python异常处理

  • 第7章 异常处理

    7.1 程序的异常处理 7.1.1 异常处理的基本使用 7.1.2 异常处理的高级使用 7.2 断言 断言 ass...

  • Python 异常

    Python 含有异常处理机制来帮助用户处理可能发生的错误异常。 1. 异常概念 异常是指Python程序运行过程...

  • Python黑帽编程2.7 异常处理

    Python黑帽编程2.7 异常处理 Python黑帽编程2.7异常处理 异常是个很宽泛的概念,如果程序没有按预想...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • (三)python错误与异常&面向对象编程

    python错误与异常 语法错误与定位 异常捕获、异常处理 try:xxxexcept: 自定义异常 python...

  • Python异常处理

    参考 Python菜鸟教程错误与异常 Python 异常处理 错误和异常 Python中(至少)有两种错误:语法错...

网友评论

      本文标题:Python高级-异常处理

      本文链接:https://www.haomeiwen.com/subject/etzqlctx.html