python中断程序执行(不抛出异常)

article/2025/10/8 4:44:56

文章目录

    • 1. quit()
    • 2. exit()
    • 3. sys.exit([arg])
    • 4. os._exit(n)

函数quit(),exit(),sys.exit()和os._exit()具有几乎相同的功能,都能引发SystemExit异常,Python解释器通过该异常退出执行且不打印堆栈回溯(不把异常打印出来)。

当运行Python程序时,正常都是从上到下执行脚本中所有代码,当python解释器执行到脚本的末端就会自动退出,但是有时我们可能需要调用内建函数显示退出程序。

1.sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit(“sorry, goodbye!”); 一般主程序中使用此退出.
2. os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.
3. exit()/quit(), 跑出SystemExit异常. 一般在交互式shell中退出时使用.

在四个退出函数中,sys.exit()是最好的,因为在编程环境中不能使用exit()和quit()函数,而os._exit()只在需要立即退出这种情况下才会使用。

1. quit()

这个函数不能用在实际的代码编写环境中,只能用在编译器interpreter中。
它在后台引发SystemExit异常。 如果进行打印,它将显示一条消息:

# Python program to demonstrate quit()   
for i in range(10):       # If the value of i becomes  5 then the program is forced to quit if i == 5:           # prints the quit message print(quit) quit() print(i) 

期望的输出应该是这样的:
在这里插入图片描述
但是如果非要在python代码环境下搞。。。就是这样的
在这里插入图片描述
但是,如果把上述代码写到一个.py文件中,在命令行调用:
在这里插入图片描述
就对了,哈哈哈哈

2. exit()

就是quit()的同义表达,也是只能在解释器中使用,不能直接在代码中执行。类似于quit(),也会打印出一条信息。(确实很像,哈哈哈。)
在这里插入图片描述

3. sys.exit([arg])

不同于上面两个只能用在命令行中。sys.exit()只要引入了sys包,就可以直接在脚本代码中执行。arg参数一般是整数,0的话就表明"正常/成功终止"了。也可以是其他的类型的对象,比如字符串

import sys
sys.exit("Age less than 18")    

在这里插入图片描述
可以看到,触发了 这个 SystemExit异常
在这里插入图片描述
如果是执行一个.py文件(不是这种逐行执行的环境),直接在pycharm里运行的话。

import sys
sys.exit("反正我退出了")

在这里插入图片描述
在这里插入图片描述

4. os._exit(n)

Python中的os._exit()方法用于以指定状态退出进程,而无需调用清除处理程序,刷新stdio缓冲区等。

注意:此方法通常在os.fork()系统调用之后的子进程中使用。 退出该进程的标准方法是sys.exit(n)方法。

主要参考:

  • geeksforgeeks——Python exit commands: quit(), exit(), sys.exit() and os._exit()
  • 知乎——python 中 os._exit(), sys.exit(), exit() 的区别是什么?
  • CSDN-python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别

http://chatgpt.dhexx.cn/article/TD0ZlF5Q.shtml

相关文章

python抛出异常及异常传递

抛出异常: Python程序中的异常不仅可以自动触发,还可以由开发人员使用raise语句和assert语句主动抛出。 使用raise语句抛出异常: 1.使用异常类引发异常 格式如下: raise 异常类 #格式1:使用异常类名引发指定的异…

Python异常处理

1异常情况: 我们在调试代码到时候会出现错误,例如用户输入非法数值,程序就会报错、停止。为避免这种情况,我们学习异常语句 计算平方根运算,如果我们输入的不是整数,是带字符串,会报错。如果我们加上 try:…

Python面向对象——异常的抛出及处理方法

1 异常的概念 Python解释器在运行时遇到错误,该错误会终止正在运行的程序并在控制台输出一些错误信息,这便是异常 程序停止执行并提示错误这个动作我们称之为: 抛出异常 异常的引起并不全是由于代码不符合Python语法规范所造成的,不恰当的用…

Command failed:C:Windows\system32\cmd. exe /s/c autoreconf -ivf

在运行npm i时: npm i 出现以下报错: 看网上很多答案都是说缺包,要手动加,但这个解决办法并不适用我,后面看到解答是代理的问题,导致包下不下来,所以可以取消代理或者变更代理来试试 npm con…

了解automake和autoconf(autoreconf)

本文转载自《例解 autoconf 和 automake 生成 Makefile 文件》 通过这篇文章可以了解auotmake和autoconf的基本工作流程,文章讲的通俗易懂,但是版本较老。了解新版本的automake可以参考automake的WiKi主页Automake,通过下图可以很清晰的了解a…

autoreconf: command not found解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Linux下监测网卡状态

目录 1.说明 2.解析命令法: 2.1.CODE 2.2.TEST 3.SOCKET法 1.说明 此代码主要对Linux下网卡4种状态进行检测,可以检查: 网卡是否存在;网卡是否down;网卡UP,插了网线(RUNNING);网卡UP&…

如何查询linux服务器的网卡,linux怎么查看网卡硬件信息

你们知道怎么查看电脑中的网卡型号吗?下面是学习啦小编带来的关于linux怎么查看网卡硬件信息的内容,欢迎阅读! Linux查看网卡信息方法一: 1.lspci | grep -i ethernet [rootlocalhost ~]# lspci | grep -i ethernet 01:00.0 Ethernet controller: Broad…

Linux网卡状态查看

博文背景 想知道ip a命令的输出都是什么意思,过于简单的如mtu、mac地址和广播地址我就不解释了 具体操作 重要文档 https://baturin.org/docs/iproute2/ http://web.archive.org/web/20220807073512/http://www.policyrouting.org/iproute2.doc.html https://lar…

SimpleDateFormat类 格式化日期

功能:格式化和解析日期 将Date类型的日期格式化成我们需要的日期类型一般是 字符串类型将字符串类的日期再转回来。 用到两个方法 format(Date date) : 将date型转换成特定格式的字符串 parse(String str) : 将字符串str转换成特定格式的dat…

php如何格式化日期格式,PHP如何格式化日期? 涨知识了

在做php开发时,经常会用到日期函数,我们可以通过这个函数将日期格式化输出显示。日期有多种的显示格式,这些格式在PHP里怎么格式化?下面一起来看下。 操作方法 01 先看下我们的代码,如图,在php里要获取到当…

Oracle格式化日期

将oralce中时间格式为XXX年XX月XX日,如下图: 需要给年月日添加引号,如to_char(sysdate,yyyy"年"mm"月"dd"日" ); select to_char(sysdate,yyyy"年"mm"月"dd"日") from dual;

微信小程序下拉菜单功能的实现

页面wxml代码如下&#xff1a; <!-- 下拉菜单栏 --><view classlist><ul class"font_s30"><li bindtap"getNav" data-idarea style"color:{{c_area}}"><view><span class "l_name" id"area&qu…

微信小程序-自定义下拉框组件

知识点&#xff1a;组件&#xff0c;animation&#xff0c;获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框&#xff0c;所以只有自定义。自定义的话&#xff0c;可以选择模板的方式&#xff0c;也可以选择组件的方式来创建。 这次我选择了组件&#xff0c;这…

微信小程序下拉菜单组件实现

先看需求和效果&#xff0c;移动端设计比较常用的下拉菜单&#xff0c;主要用于筛选查询列表结果。下拉菜单的样式可以根据自己的具体需求进行修改。这里根据自己的实际需求开发了三种下拉类型&#xff1a; 效果展示 第一个是单选下拉菜单&#xff0c;单选之后立即收起。 第…

微信小程序 实现从顶部弹出的下拉框

效果图&#xff1a; 我尝试了微信提供的API wx.animation去实现这个功能&#xff0c;但很是麻烦&#xff0c;而且对于我这刚接触小程序的渣渣而言&#xff0c;实现起来也很是困难。所以我换了种方法&#xff0c;采用CSS的动画去实现。 wxml: <image classfabiao src../ico…

微信小程序下拉菜单实例

微信小程序下拉菜单思路与步骤&#xff1a; 布局方面&#xff0c;整体使用dl来写&#xff0c;二级包在dd中&#xff0c;用ul li来写&#xff1b;交互方面&#xff0c;点击某一级菜单&#xff0c;关闭兄弟子菜单&#xff0c;点击某子菜单关闭所有菜单。 1.使用dt做出第一级菜单 …

微信小程序实现上拉下拉菜单

问题 在使用小程序的时候基本的页面的一般都是很简洁的&#xff0c;所以会有一些菜单来做简单的诠释说明&#xff0c;或者是提供一些选项。这些菜单的弹出方式一般是向上和向下&#xff0c;那么如何来设置这些上下拉的菜单呢&#xff1f; 方法 上下拉菜单在微信小程序中起提示、…

微信小程序例子——下拉列表

1、效果展示 2、关键代码 .js文件 Page({data:{// text:"这是一个页面"open:false},showitem:function(){this.setData({open:!this.data.open})},onLoad:function(options){// 页面初始化 options为页面跳转所带来的参数},onReady:function(){// 页面渲染完成},onS…

uni-app微信小程序——下拉多选框

插件来自&#xff1a;select-cy - DCloud 插件市场 1、组件代码 <template><view class"uni-select-cy" :style"{ z-index: zindex }"><view class"uni-select-cy-select" :class"{ active: active }" click.stop&quo…