Python异常

Posted liudemeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python异常相关的知识,希望对你有一定的参考价值。

异常

概念

  • 程序在运行期间,Python解释器遇到了错误,会停止程序额执行,并且提示一些错误信息,这就是异常。
  • 程序停止执行并且提示错误信息这个动作就是抛出异常。

异常的捕获

简单的捕获异常

语法格式:

try:    
    尝试执行的代码
except:
    处理异常
  • try尝试,下方编写要尝试代码,不确定是否能够正常执行的代码
  • except 如果不是,下面编写失败的代码

示例代码:

try:
    num = int(input("请输入数字:"))
except:
    print("请输入正确的数字")
错误类型捕获
  • 在程序执行时,我们会遇到不同类型的错误,针对不同的错误,做出不同的响应。

语法格式:

try:
    尝试运行的代码
except 错误类型1:
    针对错误类型1进行对应代码处理
except 错误类型2:
    针对错误类型2进行对应代码处理
except Exception as e:
    print("未知错误%s" % e)
  • 错误类型就是一个单词

示例代码:

# 提示用户输入一个整数
# 使用8除以用户的整数
try:
    num = int(input("请输入一个整数:"))
except valueError:
    print("请输入正确的整数")
except ZeroDivisionError:
    print("除0错误")
except Exception as e:
    print("未知错误%s" % e)

实际开发中,我们并不可能想到太多的错误,所有要未知错误。

异常完整写法

语法格式:

try:
    尝试运行的代码
except 错误类型1:
    针对错误类型1进行对应代码处理
except 错误类型2:
    针对错误类型2进行对应代码处理
except Exception as e:
    print("未知错误%s" % e)
else:
    没有异常时执行的代码
finally:
    无论是否有异常都会执行的代码

示例代码:

try:
    num = int(input("请输入一个整数:"))
except valueError:
    print("请输入正确的整数")
except ZeroDivisionError:
    print("除0错误")
except Exception as e:
    print("未知错误%s" % e)
else:
    print("无异常")
finally:
    print("程序执行完毕了")

异常的传递

  • 当函数或者方法执行出现异常,会将异常传递给主程序,主程序如果没有处理异常,则程序终止。

示例代码:

def demo1():
    return int(input("请输入一个整数:"))

def demo2():
    return demo1()

try:
    print(demo2())
except valueErroe:
    print("请输入正确的整数")
except Exception as e:
    print("未知错误%s" % e)

抛出异常

实际开发中,如果需要抛出异常,可以:

  • 创建一个Exception的对象,使用raise关键字抛出异常

示例代码:

def input_pwd():
    pwd = input("请输入密码:")
    if len(pwd) >= 8:
        return pwd
    
    exc = Exception("密码长度不够")
    raise exc

try:
    user_pwd = input_pwd()
    print(user_pwd)
except Exception as e:
    print("发现错误%s" % e)

以上就是本篇文章的内容,如果觉得有所帮助,麻烦点个在看。

以上是关于Python异常的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Android致命异常

mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段

mvn命令异常:An error has occurred in Javadoc report generation: Unable to find javadoc command异常已解决(代码片段

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段

片段中的getView()导致抛出异常,不确定原因

片段中的 EditText 上的空指针异常 [重复]