美文网首页
python异常处理2

python异常处理2

作者: 闲云野鹤_23dd | 来源:发表于2021-01-15 21:49 被阅读0次

try except捕获异常

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它
语法:

  try:
可能产生异常的代码块
  except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
  except [ (Error3, Error4, ... ) [as e] ]:
处理异常的代码块2
  except  [Exception]:
处理其它异常` 

捕获指定异常,交给指定except分支处理

举个例子:

def ex2():
    try:
        a = int(input("输入被除数:"))
        b = int(input("输入除数:"))
        c = a / b
        print("您输入的两个数相除的结果是:", c)
    except ValueError:
        print("程序发生了数字格式异常")
    except ArithmeticError:
        print("程序发生了算术异常")
    except:
        print("未知异常")
    print("程序继续运行")` 

获取特定异常的有关信息

通过前面的学习,我们已经可以捕获程序中可能发生的异常,并对其进行处理。但是,由于一个 except 可以同时处理多个异常,那么我们如何知道当前处理的到底是哪种异常呢?

其实,每种异常类型都提供了如下几个属性和方法,通过调用它们,就可以获取当前处理异常类型的相关信息:

  • args:返回异常的错误编号和描述字符串;
  • str(e):返回异常信息,但不包括异常信息的类型;
  • repr(e):返回较全的异常信息,包括异常信息的类型。
try:
    1/0
except Exception as e:
    # 访问异常的错误编号和详细信息
    print(e.args)
    print(str(e))
    print(repr(e))

raise

抛出异常

例子:

def ex1():
    a1 = input("输入名字(2-5位):")
    if len(a1)<2 :
        raise ValueError("名字小于2位")
    elif len(a1)>5:
        raise ValueError("名字大于5位")
    else:
        print('已输入')

if __name__ == '__main__':
ex1()

相关文章

网友评论

      本文标题:python异常处理2

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