zoukankan      html  css  js  c++  java
  • 10-异常处理

    异常

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

    异常处理

    • 不能保证程序永远正确运行
    • 但是,必须保证程序在最坏的情况下得到的问题被妥善的处理
    • python的异常处理模块全部语法为:
      • try:
        • 尝试实现某个操作
        • 如果没出现异常,任务就可以完成
      • except 异常类型1
        • 解决方案1:用于尝试在此处处理异常解决问题
      • except 异常类型2
        • 解决方案2:用于尝试在此处处理异常解决问题
      • except (异常类型1,异常类型2)
        • 解决方案:针对多个异常使用相同的处理方式
      • except:
        • 解决方案:所有异常的解决方案
      • else:
        • 如果没有出现任何异常,将会执行此处代码
      • finally:
        • 不管有没有异常都会执行代码
    try:
    	num = int(input("plz input your number:"))
    	rst = 100/num
    	print('你输入的事:{}'.format(rst))
    
    # 如果是多种error的情况
    # 需要把越具体的错误,越往前放
    # 在异常类继承关系中,越是子类的异常,越是往前方
    # 越是父类的异常,越要往后放
    
    # 在出力异常的时候,一旦拦截到某一个异常,则不再继续往下查看,直接进行下一个
    #代码,即在finally执行finally语句块,否则就执行下一个大的语句
    except ZeroDivisionError as e:
    	print("不要输0")
    	print(e)
    	exit()
    	
    except NameError as n:
    	print("命名错误")
    	print(n)
    	exit()
    
    # 所有异常都继承自Exception
    # 如果写上这句,任何异常都能拦截
    # 而且,下面这句话一定是最后一个exception	
    except exception as e:
    	print("不知道哪错了")
    	print(e)
    	exit()
    
    

    用户手动引发异常

    • 当某些情况,用户希望自己引发一个异常的时候,可以使用
    • raise关键字来引发异常
    #coding=gbk
    # raise案例
    try :
    	print("我爱老婆")
    	raise ValueError
    	print("还没完")
    except NameError as e:
    	print("NameError")
    except ValueError as e:
    	print("ValueError")
    except Exception as e:
    	print('有异常')
    finally:
    	print("我肯定会被执行")
    
    
    • 自定义异常
    # 自己定义异常
    # 自定义异常必须是系统异常的子类
    '''
    class jjcError(ValueError):
    	pass
    	
    try :
    	print("我爱老婆")
    	raise jjcError
    	print("还没完")
    except NameError as e:
    	print("NameError")
    except ValueError as e:
    	print("ValueError")
    except Exception as e:
    	print('有异常')
    finally:
    	print("我肯定会被执行")
    
    • else案例
    # else案例
    try:
    	num = int(input("plz input your number:"))
    	rst = 100/num
    	print('你输入的事:{}'.format(rst))
    except Exception as e:
    	print("Exception")
    	
    else:
    	print("No Exception")
    finally:
    	print("我肯定会被执行")
    
  • 相关阅读:
    二叉树中序遍历 2021.4.14
    简单题 好数对题目 2021.4.13
    2021.4.3 在排序数组中查找元素的第一个和最后一个位置
    力扣刷题记录2021.4.13 最富有客户的资产总量
    iOS开源项目阅读整理
    Missing iOS Distribution signing identity解决方案
    微信票选项目遇到的坑
    [转]从此爱上iOS Autolayout
    [转]iOS应用性能调优的25个建议和技巧
    iOS中用json接收图片的二进制流
  • 原文地址:https://www.cnblogs.com/rener0424/p/10391017.html
Copyright © 2011-2022 走看看