首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python脚本使用退出代码255退出,尽管尝试-除块。

Python脚本使用退出代码255退出,尽管尝试-除块。
EN

Stack Overflow用户
提问于 2019-04-30 15:53:04
回答 1查看 4K关注 0票数 3

在将异常处理发送给用户试用之前,我尝试在脚本中构建一些异常处理。为了实现这一点,我试图运行try-except块来捕获我认为可能发生的错误。

例如,代码使用API与另一段软件交互。该软件依赖硬件许可(USB )安装在teh计算机上,否则Python无法访问该软件,脚本退出代码255退出。下面的代码示例。

代码语言:javascript
复制
    code-to-activate-licence
except Exception as e:
     warn-user-of-error

我希望try-except块获取退出代码并执行代码的except部分。但是,我假设,由于激活许可证的尝试似乎并不会引发错误,而是给出一个非零的退出代码,因此它似乎没有被try-except块捕获。在这个退出代码实际退出脚本之前,有什么方法可以捕捉到它吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-30 16:02:31

但是,您使用的是except Exception as e:,但是库调用的是sys.exit(),它将引发一个类型为BaseExceptionSystemExit,而不是一个标准的ExceptionException包含所有非系统退出的异常。

您需要显式地捕获SystemExit才能中断它。

来自[博士]

异常SystemExit 此异常由sys.exit()函数引发。它继承自BaseException而不是异常,这样就不会意外地被捕获异常的代码捕获。异常 所有内置的、非系统退出的异常都是从这个类派生出来的。所有用户定义的异常也应该从这个类派生出来。

在代码中,它看起来类似于:

代码语言:javascript
复制
try:
    somecode()
except Exception as e:
    do_something_with_exception(e)
except SystemExit as x:
    do_something_not_exit(x)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55924660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档