为什么退出代码不受尊重?

时间:2018-05-11 14:01:59

标签: python python-3.x exit exit-code

假设我们在test_script.py内写下以下内容:

sys.exit(-992340374290374)

我们收到以下错误消息:

"[drive_letter]:\[path to python.exe]" [drive_letter]:/[path to script]

Process finished with exit code -1

-1不是-992340374290374。发生了什么事?

2 个答案:

答案 0 :(得分:5)

来自sys.exit docs(强调我的):

  

退出Python。这是通过提升SystemExit来实现的   异常,所以try的finally子句指定的清理动作   声明被尊重,并且可以拦截出口   尝试在外层。

     

可选参数arg可以是给出退出状态的整数   (默认为零)或其他类型的对象。如果是整数,   零被认为是“成功终止”,任何非零值都是   被贝壳等认为是“异常终止”。 大多数系统   要求它在0-127范围内,并产生不确定的结果   否则。某些系统具有分配特定的约定   特定退出代码的含义,但这些通常是   欠发达; Unix程序通常使用2来执行命令行语法   所有其他类型的错误都有错误和1。如果是另一种类型的对象   传递,None相当于传递零,任何其他对象都是   打印到stderr并导致退出代码为1.特别是   sys.exit(“some error message”)是一种快速退出程序的方法   发生错误。

答案 1 :(得分:1)

这与操作系统处理退出的方式有关。在sys.exit <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .container { position: relative; width: 50%; } .image { opacity: 1; display: block; width: 100%; height: auto; transition: .5s ease; backface-visibility: hidden; } .middle { transition: .5s ease; opacity: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); text-align: center; } .container:hover .image { opacity: 0.3; } .container:hover .middle { opacity: 1; } .text { background-color: #4CAF50; color: white; font-size: 16px; padding: 16px 32px; } </style> </head> <body> <h2>Opacity with Box</h2> <p>Hover over the image to see the effect.</p> <div class="container"> <img src="img_avatar.png" alt="Avatar" class="image" style="width:100%"> <div class="middle"> <div class="text">John Doe</div> </div> </div> </body> </html> 中,它说:

  

大多数系统要求它在0-127范围内,否则会产生不确定的结果。