python之异常篇

2020-05-15  本文已影响0人  BABYMISS

异常

# 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领取

上一篇下一篇

猜你喜欢

热点阅读