美文网首页
python3异常处理

python3异常处理

作者: test小星星 | 来源:发表于2018-09-17 15:20 被阅读12次

    异常处理语法

    try:
          里面写你觉得会出现异常的代码块
          
    except 异常的类型1:
           print("如果出来了异常后所要做的处理")
    except 异常的类型2:
           print("如果出来了异常后所要做的处理")
    else:
           print("没有异常才会执行的功能")
    finally:
           print("不管有没有异常都会执行的功能")
    

    这样做的好处

    如果使用了try,try里面的代码出现了异常只是不执行这些代码。而会继续执行后面的代码。
    不会因为程序出现了异常,而导致整个程序崩溃

    需要注意的几点

    1、except指定的异常的类型必须和实际异常的类型一致。
    2、如果想把多个异常类型写在一起可以:except (异常类型1,异常类型2):
    3、如果不知道出现什么异常可以:except Exception as e:
    Exception 代表不管什么异常都按这样异常处理(总异常)
    4、异常的传递:如果被调用的函数或类,没做异常处理,就会传递到调用它的代码,如果掉用的代码做了异常处理就按该异常处理。

    触发异常

    我们可以使用raise语句自己触发异常
    raise语法

    raise [Exception [, args [, traceback]]]
    

    语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。
    最后一个参数是可选的,如果存在,是跟踪异常对象。

    实例

    # 定义函数
    def myexception( level ):
        if level < 1:
            raise Exception("Invalid level!")
            # 触发异常后,后面的代码就不会再执行
    try:
        myexception(0)        # 触发异常
    except Exception as msg: # 如果不是自己触发的异常,而是别的异常执行下面代码
        print(msg)
    else:                # 如果没有异常则执行下面代码
        print('pass')
    执行结果为:
    Invalid level!
    

    自定义异常

    #创建一个自定义异常类,继承Exception
    class Networkerror(Exception):
        def __init__(self, arg):
            self.args = arg
    #使用raise 实例化自定义类
    try:
        raise Networkerror("异常提示信息")
    except Networkerror as msg:
        print(msg)

    相关文章

      网友评论

          本文标题:python3异常处理

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