1.软文推荐

2.软文推荐

3.软文推荐

os._exit() 和 sys.exit()

os._exit() vs sys.exit()

概述

Python的程序有两中退出方式:os.*exit(), sys.exit()。本文介绍这两种方式的区别和选择。 os.*exit()会直接将python程序终止,之后的所有代码都不会继续执行。 sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。

举例说明

1 import os
2
3 try:
4     os._exit(0)
5 except:
6     print 'die.'

此处不会打出”going to die”

import sys

try:
   sys.exit(0)
except:
   print 'die'
finally:
   print 'cleanup'

输出:

die
cleanup
区别

综上,sys.exit()的退出比较优雅,调用后会引发SystemExit异常,可以捕获此异常做清理工作。os._exit()直接将python解释器退出,余下的语句不会执行。

一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()

一般来说os._exit() 用于在线程中退出

sys.exit() 用于在主线程中退出。

exit() 跟 C 语言等其他语言的 exit() 应该是一样的。 os._exit() 调用 C 语言的 _exit() 函数。

builtin.exit 是一个 Quitter 对象,这个对象的 call 方法会抛出一个 SystemExit 异常。


exit(0)和exit(1)·

exit(0):无错误退出 exit(1):有错误退出 退出代码是告诉解释器的(或操作系统)

本文来源:www.lxlinux.net/7676.html,若引用不当,请联系修改。

相关文章 8

1

CentOS6.8中安装GO语言具体方法 2分钟前

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go...

2

云服务官网(云服务官网oppo手机查找) 4分钟前

目录:1、oppo手机云服务登录官网2、华为手机云服务的网址是什么啊3、华为手机云服务的网址是什么?4、华为云服务登录入口5、oppo云服务...

3

通过Vagrant 在不同的操作系统上测试你的脚本 5分钟前

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。 我使...

4

讲解一下虚拟现实如何改变世界 7分钟前

想象家人与朋友彼此身处世界的不同角落,却能相聚在同一房间的场景。这听起来像是科幻电影片段,但很多人没有意识到这是一个现实,...

5

香港华为云服务器(香港华为云服务器被用来赌博) 10分钟前

目录:1、华为云随意冻结服务器,然后让我去反诈中心申诉!2、华为云服务器多少钱?3、云服务器哪个品牌比较好华为云随意冻结服务器...

6

Centos8中添加附加的IP具体方法 13分钟前

有时可能需要为 CentOS 8 系统上的单个网卡分配附加的 IP 地址。例如应用程序要求或 SSL 证书的安装。在本文中,我们将解释如何在 CentOS 7...

7

redis教程(redis教程下载) 15分钟前

目录:1、Redis官方教程 Expire超时2、关于Redis批量写入的介绍3、AWS Linux安装Redis简易教程4、使用 redis-cli 搭建 Redis 集群5、Linux下安装配置re...

8

C# 中数组作为参数传递问题详解 17分钟前

如果参数在使用过程中被意外修改,将会带来不可预知的结果,而且这种错误很难被检查到,所以我们在设计方法参数的时候,要充分考虑...