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

    异常的捕获和处理

    异常被抛出后,如果没有捕获处理,那么会导致当前程序的异常退出。

    通过try...except...finally...这样的方式来捕获和处理异常。
    try:

      b = 4/0

    except ZeroDivisionError:

      print("handke ZeroDrivisionError")

    捕获多种异常

    我们可以连接好几个except代码段来分别捕获不通类型的异常,如下

    try:

      ohmy

      b = 4/0

    except ZeroDivisionError:

      print("handle ZeroDivisionError")

    except NameError:

      print("handle NameError")

    得到异常对象

    有的时候,我们在捕获异常的时候得到更具体的异常信息,会这样

    try:

      ohmy

    except NameError as e:

    print(''handle NameError",e)

    捕获所有异常

    有的时候我们并不知道会抛出什么样的异常,但是我们并不希望有未知异常抛出的时候,程序被异常种植,这时候我们可以捕获所有类型的异常。如下:

    try:

      ohmy

    except Exception as e:

      print("handle unkown exception:",e)

    如果想看到异常抛出的详细的调用栈信息可以这样写

    import traceback

    try:

      ohmy

    except:

      print("handle unkown exception "+ traceback.format_exc())

    自定义异常:

    exception异常包含很多种类像 除0异常、nameerror异常 继承exception异常

    class NameTooLongError(Exception):
        pass
    class NameTooShortError(Exception):
        pass
    
    def inputname():
        name = input('请输入姓名:')
        if len(name) > 11:
            raise NameTooLongError()
        if len(name) < 6:
            raise  NameTooShortError()
        return name
    
    try:
        ret = inputname()
    except NameTooShortError:
        print("name太短了!")
    except NameTooLongError:
        print("name太长了!")
  • 相关阅读:
    Invalid column name on sql server update after column create
    个人工资计算表
    xxxx
    excel cannot access the file there are several possible reasons
    .NET/VB.NET: solving the error “The system cannot find the file specified.” “Temp.NETFramework,Version=v4.0.AssemblyAttributes.vb”
    GIT
    时区
    create Excel file
    开发类分组
    判断是否已安装.net framework
  • 原文地址:https://www.cnblogs.com/xiao-qing/p/9291204.html
Copyright © 2011-2022 走看看