• 异常处理



    异常的传递

    将异常在外部解决

    • 在try中还可以嵌套try,但是内部的try可以省略掉except,用finally来指代内部出错,try嵌套中的所有异常,都可以用最外层的except来指出、
    try:
        #print(num)
        try:
            print(a)
        finally:
            print('内部')
    except:
        print('外部捕获到了异常')
    
    • 函数嵌套中,在函数的嵌套中,因为下一个套用上一个,函数之间存在着以来罐子,假如第一个函数就有问题,就会影响下面的函数调用,
    def f1():
        print(a)
    def f2():
        f1()
    def f3():
        f2()
    f3()
    

    只是针对于f1中的某一句报错来处理

    def f1():
        try:
           print(a)
        except:
            print('异常') 
    def f2():
        f1()
    def f3():
        f2()
    f3()
    

    把整个函数f1中可能的错误打包处理

    def f1():
        print(a)
    def f2():
        try:
             f1()
        except:
            print('异常') 
    def f3():
        f2()
    f3()
    

    把整个函数f2(f1())中可能的错误打包处理

    def f1():
        print(a)
    def f2():
           f1()
    def f3():
        try:
             f2()
        except:
            print('异常') 
    f3()
    

    手动抛出异常

    1:
    自定义一个异常类
    class Ageerror(Exception):
        def  __init__(self,age):
            self.__age = age
        #重写str方法
        def __str__(self):
            return '输入的年龄有误%s'%self.__age
    注意继承的是Exception
    
    2:
    class Person(object):
        def __init__(self, name, age):
    
            if age > 0 and age <= 150:
                self.age = age
                self.name = name
            else:
                #抛出自定义异常
                raise   Ageerror(age)
    xm = Person('小明',160)
    

    在except Exception as e 中可以有各种各样的操作,继续进行流程判断,break continue都行

  • 相关阅读:
    linux expr命令执行问题
    Virtual Box设置Host only模式的网络互通问题
    Linux下管理软件的方法
    转载 AMI方案和Insyde方案
    笔记二(名词详解)持续更新。。。
    笔记一(固件、BIOS、UEFI)
    Cache As Ram
    (二十四)C语言之文件
    (二十三)C语言之位运算
    (二十二)C语言之typedef
  • 原文地址:https://www.cnblogs.com/cizao/p/11481779.html
Copyright © 2020-2023  润新知