美文网首页
python之异常篇

python之异常篇

作者: BABYMISS | 来源:发表于2020-05-15 15:32 被阅读0次

    异常

    # print('hello')

    # try:

    #    # try中放置的是有可能出现错误的代码

    #    print(10/0)

    # except:

    #    # except中放置的是出错以后的处理防暑

    #    print('哈哈哈,出错了~~~')

    # else:

    #    print('程序正常执行没有错误')   

    # print('你好')

    # print(10/0)

    def fn():

        print('Hello fn')

        print(a)

        print(10/0)

    def fn2():

        print('Hello fn2')

        fn()

    def fn3():

        print('Hello fn3')

        fn2()

    fn3()   

    异常对象

    print('异常出现前')

    l = []

    try:

        # print(c)

        # l[10]

        # 1 + 'hello'

        print(10/0)

    except NameError:

        # 如果except后不跟任何的内容,则此时它会捕获到所有的异常

        # 如果在except后跟着一个异常的类型,那么此时它只会捕获该类型的异常

        print('出现 NameError 异常')

    except ZeroDivisionError:

        print('出现 ZeroDivisionError 异常')

    except IndexError:

        print('出现 IndexError 异常')

    # Exception 是所有异常类的父类,所以如果except后跟的是Exception,他也会捕获到所有的异常

    # 可以在异常类后边跟着一个 as xx 此时xx就是异常对象

    except Exception as e :

        print('未知异常',e,type(e))

    finally :

        print('无论是否出现异常,该子句都会执行')

    print('异常出现后')

    抛出异常

    # 也可以自定义异常类,只需要创建一个类继承Exception即可

    class MyError(Exception):

        pass

    def add(a,b):

        # 如果a和b中有负数,就向调用处抛出异常

        if a < 0 or b < 0:

            # raise用于向外部抛出异常,后边可以跟一个异常类,或异常类的实例

            # raise Exception   

            # 抛出异常的目的,告诉调用者这里调用时出现问题,希望你自己处理一下

            # raise Exception('两个参数中不能有负数!') 

            raise MyError('自定义的异常')

            # 也可以通过if else来代替异常的处理

            # return None

        r = a + b

        return r

    print(add(-123,456))   

    更多学习课程以及资料 加Q群313074041领取

    相关文章

      网友评论

          本文标题:python之异常篇

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