首页 > 编程语言 >Python语言中程序运行错误和异常处理

Python语言中程序运行错误和异常处理

时间:2024-10-05 15:13:37浏览次数:7  
标签:files 程序运行 错误 Python except try finally print 异常

'''
Python捕获异常:
一旦发生异常,程序就会终止,这是非常糟糕的事情,这种糟糕体现在两方面
    1.即便发生了异常,业务上可以忽略它,那么程序应当继续执行
    2.程序终止,使得异常的信息没有被保留下来,不利于问题的分析和总结
为了提高程序的健壮性和解决问题,可以将异常捕获,根据业务要求来做对应的处理
'''

import os


# 1. try ... except ... 语法来捕捉异常
def open_files(files):
    try:
        with open(files, 'r') as f:
            for line in f:
                print(line.strip()) 
    except Exception as err:# 可以指定抛出哪个异常,如果你不想指定,那么可以抛出异常Exception, 它是所有异常的父类
        print('文件不存在!\n{0}'.format(err))
    else:# 如果没有异常发生,则执行以下的内容
        print("文件读取成功")


# 2. try ... except ... finally 语句无论是否发生异常都将执行最后finally块内的代码
def open1_files(files):
    try:
        with open(files, 'r') as f:
            for line in f:
                print(line.strip()) 
    except FileNotFoundError as err:# except 可以指定想要捕获的异常
        print('文件不存在!\n{0}'.format(err))
    else:# 如果没有异常发生,则执行以下的内容
        print("文件读取成功")
    finally:# finally语句块,不论try子句里是否发生异常,也不论你在except语句块里做了什么操作,总之,最终一定会执行finally语句块里的代码
        print("executing finally clause")


# 3. 程序主动抛出异常 raise 语句自己触发异常(一般很少使用这种方式)
# 有时,程序需要主动抛出异常,因为某些情况下,你需要反馈消息给更上层的调用者,告诉它有一些异常情况发生,而你抛出异常的地方,没有能力处理它,因此需要向上抛出异常
def mye(level):
    if level > 1:
        raise Exception('level 不能大于 1')
        # 触发异常后,后面的代码就不会再执行
    print(level)
    return level


if __name__ == '__main__':
    open_files('1.txt')
    open1_files('2.txt')
    mye(2)

 

标签:files,程序运行,错误,Python,except,try,finally,print,异常
From: https://www.cnblogs.com/codtina/p/18434511

相关文章

  • uv --- replacement of conda + pip (python version + package version install) pyt
    uvhttps://docs.astral.sh/uv/AnextremelyfastPythonpackageandprojectmanager,writteninRust. InstallingTrio'sdependencieswithawarmcache.Highlights......
  • [Python手撕]公交路线
    classSolution:defnumBusesToDestination(self,routes:List[List[int]],source:int,target:int)->int:ifsource==target:return0station_route={}foriinrange(len(routes)):......
  • [Python手撕]判断二分图
    classSolution:defisBipartite(self,graph:List[List[int]])->bool:defbfs(i):color[i]=1queue=[(i,1)]whilequeue:t,c=queue.pop(0)nc=0......
  • Python替换pypi阿里源
    安装python解释器完成后,使用pip安装模块会遇到超时或者直接无法安装,可以设置使用国内的阿里源或者清华源,下面介绍下步骤阿里源:pypi镜像源清华源:pypi镜像源python-mpipconfigsetglobal.index-urlhttp://mirrors.aliyun.com/pypi/simplepython-mpipconfigsetinstal......
  • DedeCMS Error Track:DedeCMS错误警告:连接数据库失败
    当织梦CMS(DedeCMS)出现“连接数据库失败”的错误时,可以通过以下几个步骤进行排查和解决:1.检查数据库配置文件打开配置文件打开织梦CMS的数据库配置文件 include/config.inc.php。使用FTP工具或SSH连接到服务器,然后打开该文件。检查配置信息确认数据库配置信息是否正......
  • 用python写一段脚本:将旧的视频文件中的音频替换成新的,并保存成新的视频文件
    代码:importsubprocessdefreplace_audio_with_ffmpeg(video_path,audio_path,output_path):#构建ffmpeg命令command=['ffmpeg','-i',video_path,#输入视频文件'-an',#禁用输入视频的音频'-i&......
  • 深入 Python 数据分析:高级技术与实战应用
    一、引言 Python作为一种强大的编程语言,在数据分析领域中发挥着重要作用。本文将带领读者深入探索Python数据分析的高级技术,通过实际案例和代码示例,帮助读者提升数据分析能力和解决实际问题的能力。 二、数据读取与预处理 使用 pandas 库读取各种数据格式(如CSV、......
  • 深入探索 Python 爬虫:高级技术与实战应用
    一、引言 Python爬虫是一种强大的数据采集工具,它可以帮助我们从互联网上自动获取大量有价值的信息。在这篇文章中,我们将深入探讨Python爬虫的高级技术,包括并发处理、反爬虫策略应对、数据存储与处理等方面。通过实际的代码示例和详细的解释,读者将能够掌握更高级的爬虫技巧,提......
  • Python进程池:提升你的并发性能
    引言在现代编程中,多核处理器的普及使得并发编程变得尤为重要。Python,作为一种广泛使用的编程语言,提供了多种并发和并行编程的工具。其中,multiprocessing库中的进程池(Pool)是一个强大的工具,它可以帮助我们有效地利用多核处理器,提高程序的执行效率。本文将带你深入了解进程池的使用,从......
  • (开题)flask框架基于Web的工艺品展示系统的设计与实现(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务和在线展示平台已成为各行业推广和销售产品的重要手段。工艺品作为富含文化底蕴和艺术价值的产品,其传统......