在使用Python时经常出现异常,举出几个常见的异常并解决

python学习网 2020-12-22 22:07:50

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本篇文章来自腾讯云 作者:孤独的明月

( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 )
在这里插入图片描述

一、了解异常

  • 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
  • 一般情况下,在Python无法正常处理程序时就会发生一 个异常。
  • 异常是Python对象,表示一个错误。
  • 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

二、Python异常分类

在这里插入图片描述

三、异常的处理

语法

try:
      可能发生错误的代码
except: 
      如果出现异常执行的代码

在这里插入图片描述

四、异常传递

体验异常传递

需求:
尝试只读方式打开test.txt文件,如果文件存在则读取文件内容,文件不存在则提示用户即可。
读取内容要求:尝试循环读取内容,读取过程中如果检测到用户意外终止程序,则 except 捕获异
常并提示用户

import time
try:
      f = open('test.txt') 
      try:
            while True: 
                  content = f.readline() 
                  if len(content) == 0: 
                        break 
                  time.sleep(2) 
                  print(content) 
            except: 
                  # 如果在读取文件的过程中,产生了异常,那么就会捕获到
                  # 比如 按下了 ctrl+c
                  print('意外终止了读取数据') 
      finally: 
            f.close() 
            print('关闭文件') 
except: 
      print("没有这个文件")

 

五、自定义异常

在Python中,抛出自定义异常的语法为 raise 异常类对象 。

# 自定义异常类,继承Exception
class ShortInputError(Exception): 
      def __init__(self, length, min_len): 
            self.length = length
            self.min_len = min_len

      # 设置抛出异常的描述信息
      def __str__(self): 
            return f'你输入的长度是{self.length}, 不能少于{self.min_len}个字符' 

def main(): 
      try:
            con = input('请输入密码:') 
            if len(con) < 3: 
                  raise ShortInputError(len(con), 3) 
      except Exception as result: 
            print(result) 
      else:
            print('密码已经输入完成') 
main()

 

阅读(893) 评论(0)