python怎么退出执行/退出程序语句

news2024/11/22 11:28:27

python怎么退出执行/退出程序语句

文章目录

  • python怎么退出执行/退出程序语句
    • sys.exit()函数
  • raise SystemExit()异常
  • os._exit()函数
  • Ctrl+C中断程序执行
    • 具体情况具体处理
    • 参考资料

在Python中,退出执行是一个常见的操作。退出方法介绍:

sys.exit()函数

sys.exit()函数可以用于正常退出程序,本质他会抛出一个异常: SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获该异常的代码,那么这些代码还是会执行。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。

raise SystemExit()异常

raise SystemExit()异常也可以用于退出程序, 可以看做sys.eit()的主动版。与sys.exit()函数不同的是,它不需要传递任何参数。当程序执行到raise SystemExit()语句时,程序会立即退出。如果有异常捕获的话跟前者处理情况一样。

os._exit()函数

os._exit()函数会直接将python程序终止,之后的所有代码都不会执行。它与sys.exit()函数的区别在于,它不会执行任何清理工作,直接终止程序。因此,在使用os._exit()函数时应该非常小心,避免对系统造成损害。
另外如果不加参数,直接用os._exit()那么会返回一个“Programisdead“ message, 而加数字进去,一般用os._exit(0) 这样程序直接结束,没有任何返回。
在这里插入图片描述

Ctrl+C中断程序执行

在命令行下运行的Python程序可以通过按下Ctrl+C组合键来中断程序执行。这种方法比较粗暴,但是在某些情况下非常有效。

具体情况具体处理

合理选择退出方法可以保证程序和系统的稳定。

  • 一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()
  • 一般来说os._exit() 用于在线程中退出, sys.exit() 用于在主线程中退出。
  • exit() 跟 C 语言等其他语言的 exit() 应该是一样的。os._exit() 调用 C 语言的 _exit() 函数。
  • return:在定义函数时从函数中返回一个函数的返回值,终止函数的执行。
    os._exit(),sys.exit(),exit(),quit()都能够退出当前执行脚本,差别在于os._exit()直接退出,sys.exit(),exit(),quit()始终会抛出一个SystemExit异常。如果不捕获异常,看起来的效果和 os._exit() 一样,不会有任何意外的信息,但也可以捕获这些异常来做一些清理的工作.

Example:

import os 
try:
	os._exit(0) 
except:
	print('Programisdead.')

这个print是不会打印的,因为没有异常被捕获。

import sys 
try:
	sys.exit(0) 
except:
	print('Programisdead.') 
finally:
	print('clean-up')

这里两个print都可以打印,因为sys.exit()抛出了异常.
在这里插入图片描述

参考资料

os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
python怎么退出执行(python退出程序语句)
Python中退出程序的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最近几年,国内好多家实体企业都开始用上低代码了,它有什么好?

前言: 裹挟大数据、云计算、人工智能等数字技术的第四次工业革命浪潮正加速来袭,全球经济已行至历史的十字路口。 站上技术浪潮潮头者澎湃生长,错过技术浪潮者黯然败退。那么,对于中国的普通制造企业来说,如何抓住向…

【媒体广告】的现状与未来发展趋势!

媒体广告是一种重要的市场推广手段,随着技术的不断发展和市场环境的变化,媒体广告也在不断地演变和发展。本文将从以下几个方面探讨媒体广告的发展趋势。 一、数字化、数据化和智能化趋势 随着互联网和移动互联网技术的发展,数字化、数据化…

2.1 初探MyBatis实现简单查询

一、创建数据库与表 1、创建数据库 在Navicat里创建MySQL数据库 - testdb,采用utf8mb4字符集 2、创建用户表 用户表 - t_user CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(50) DEFAULT NULL,age int(11) DEFAULT NULL,address var…

LLM-Pruner: 剪枝+少量数据+少量训练 = 高效的LLM压缩

概要 大语言模型(LLMs, Large Language Models)在各种任务上展现出了惊人的能力,这些能力很大程度上来自于模型庞大的模型规模以及海量的训练语料。为了应对这些模型部署上存在的挑战,许多研究者开始关注大语言模型的轻量化问题。…

华为认证 | HCIE-存储 V3.0 即将发布!

华为认证HCIE-Storage V3.0(中文版)预计将于2023年6月30日正式对外发布。为了帮助您做好学习、培训和考试计划,现进行预发布通知,请您关注。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的新ICT技术架构&…

5周年更新 | OpenVINO™  2023.0,让AI部署和加速更容易

时光匆匆,岁月荏苒,OpenVINO™迎来了5岁生日。5岁,对于OpenVINO™来说还是个很年轻的年纪,一如正在茁壮成长的少年,每天都迸发着无穷的生命力。 在这5年里,OpenVINO™密切关注市场需求,着眼未来…

JavaScript拖动元素在一个范围内移动

基于 jQuery移动范围由 div 搭建(div 模仿表格),卡片的移动不允许超出该范围移动卡片会有一个淡蓝色卡片的标记出将要放置的位置有禁止放置标记的位置,不允许卡片放置(会放到前一个可放置的位置)卡片放置会覆盖单元格中的文字卡片…

TSS半导体放电管八大属性总结

​之前在写关于GDT放电管与TSS放电管之间的差异时,其实有谈到TSS(固体放电管)它拥有的一些特性,今天优恩小编还是想重复一下,希望更多小伙伴能够记住。 TSS,有人叫它固体放电管、也有人叫它半导体放电管&am…

智能交通车路协同系统的应用场景和发展趋势

随着城市化进程的加速和汽车保有量的增加,城市交通拥堵、交通事故等问题日益突出。为了解决这些问题,智能交通车路协同系统应运而生。智能交通车路协同系统是一种基于车载终端、路侧设备和交通管理中心等多个组成部分构成的智能交通系统,可以…

io之netty

写在前面 netty当前是网络io框架的事实标准,基于nio实现,框架的作者是韩国一位姓李的朋友,开始我们这位行李的韩国朋友开发一个io框架mina,但后来其离职,mina也就和其没有关系了,所以后来其改进了mina的不…

Maxcompute数据上云一致性比对

我写过很多如何去对数、如何批量对数的技术文档,最近项目遇到这个问题,我才发现在官方博客上还没有发布过这个课题的文章。这就像灯下黑,太长用到的知识点,反而没有意识到其重要性。 注:这里对数的场景就是指在阿里云…

docker 装机/卸载 Mysql

1、首先,需要安装Docker。可以使用以下命令安装: > yum install docker 2、安装完成后,启动Docker服务: > systemctl start docker3、CentOS7环境下的Docker使用 docker快速部署mysql数据库并初始化 docker快速部署mysq…

Power BI API调用注意事项 (By Power Automate)

注:本文最初发布于https://d-bi.gitee.io和medium, 2023年6月迁移至CSDN 前述 本站关于实现Power BI REST API的博文已有许多,包括: Power BI REST API有多强大?PBI开发者必读Power BI REST API实战教程:PowerQuery为…

基于SSM的便利店系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 基于SSH的便利店系统是…

Java中方法的重载与重写

文章目录 前言方法重载方法重写 前言 提示:这里可以添加本文要记录的大概内容: 方法的重载与重写容易混,所以单独拿出来比较 提示:以下是本篇文章正文内容,下面案例可供参考 方法重载 在同一个类中,允…

springcloud-alibaba (06)RocketMQ控制台安装与启动

RocketMQ控制台 ✨让你的消息传输更高效✨ 如果你是一名开发者,或者是对消息传输有需求的企业用户,那么你肯定不陌生于 RocketMQ,它是一个高可用、高可靠、高性能、分布式消息中间件。但是有时候,在 Windows 上安装和启动 Rocke…

生产环境可用的 Seata-go 1.2.0 来啦!!!

文|刘月财(GitHub ID:luky116) 360 服务端开发专家 Seata-go 项目负责人 本文 2752 字 阅读 7 分钟 发布概览 Seata-go 1.2.0 版本支持 XA 模式。XA 协议是由 X/Open 组织提出的分布式事务处理规范,其优点是对业务代码无侵入。当前…

小巧长续航的主动降噪耳机,更轻更好用,QCY ArcBuds上手

我平时听歌、玩游戏的时候喜欢戴上一副蓝牙耳机,这种耳机选择很多,这几年进步还很快,市面上有很多价格合理、音质出色的选择。我目前用的是一款QCY ArcBuds,这款耳机支持主动降噪,户外使用体验不错,而且它做…

Dockerfile实现LNMP

systemctl stop firewalld systemctl disable firewalld setenforce 0 docker network create --subnet172.18.0.0/16 --opt "com.docker.network.bridge.name""docker1" mynetwork #部署nginx(容器IP 为 172.18.0.10) mkdir /o…

一文讲解 基于C++手写Rpc项目

目录 github 预备知识 集群和分布式 单机聊天服务器 集群聊天服务器 分布式聊天服务器 从集群式 到 分布式聊天服务器 看来只有好处 ,但代价是什么? rpc 的 通信原理 remote procedure call 分布式通信 手写的rpc部分 protobuf>json 好处? 介绍protobuf protob…