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


    异常的传递

    将异常在外部解决

    • 在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都行

  • 相关阅读:
    bootstrap记忆技巧
    js表单序列化
    bootstrap
    前端调试
    form表单上传文件
    前端调试总结(未完,不一定对)
    serialize()序列化 和serializeArray()和param()
    关于jq插件——表单验证插件
    ModuleNotFoundError: No module named 'PIL'
    自然主键和代理主键的区别
  • 原文地址:https://www.cnblogs.com/cizao/p/11481779.html
Copyright © 2011-2022 走看看