|
|
|
|
移动端

3.1.3 使用SystemExit异常打印错误信息

《Python Linux系统管理与自动化运维》第3章打造命令行工具,本章介绍了如何使用Python语言解析ini格式的配置文件以及如何使用Python语言解析命令行参数,紧接着,本章介绍了Python标准库中的logging库,在本章最后,我们介绍了如何使用开源项目打造功能更加强大的命令行工具。本节为大家介绍使用SystemExit异常打印错误信息。

作者:赖明星来源:机械工业出版社|2017-09-28 16:36

3.1.3 使用SystemExit异常打印错误信息

在上一小节中,我们介绍了如何从标准输入读取内容。显然,Python也会提供功能让我们能够在标准输出和错误输出中输出内容。与标准输入类似,我们可以直接使用sys.stdout与sys.stderr向标准输出和错误输出中输出内容。 例如,下面是一个名为test_stdout_stderr.py的Python文件,我们在该文件中分别使用sys.stdout与sys.stderr输出内容。如下所示:

  1. import sys  
  2.  
  3. sys.stdout.write('hello')  
  4. sys.stderr.write('world') 

默认情况下,“hello”和“world”都会输出到命令行。我们可以通过重定向来验证“hello”被输出到了标准输出,"world"被输出到了错误输出。如下所示:

  1. $ python test_stdout_stderr.py >/dev/null  
  2. world  
  3.  
  4. $ python test_stdout_stderr.py 2>/dev/null  
  5. hello 

在Python程序中,print函数默认输出到命令行终端,因此,一般情况下,我们不会直接调用sys.stdout来输出内容。如果我们的Python程序执行失败,需要在标准错误中输出错误信息,然后以非零的返回码退出程序,那么,这个时候就需要使用sys.stderr。如下所示:

  1. import sys  
  2. sys.stderr.write('error message')  
  3. sys.exit(1) 

对于“Python脚本执行出错,需要向错误输出中输出错误信息,并且以非零的返回码退出程序” 的需求,我们也可以直接抛出一个 SystemExit异常。如下所示:

  1. $ python test_system_exit.py  
  2. error message  
  3.  
  4. $ echo $?  

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管第一课——网络组建与管理

本书针对初级网管朋友所需掌握的网络组建和网络管理技能,以示例方式编写而成,其主要特点就是实用性和可操作性非常强。 全书共分8章,分...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊