问题标签 [systemexit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
66843 浏览

python - 有没有办法防止从 sys.exit() 引发的 SystemExit 异常被捕获?

文档说调用 sys.exit() 会引发一个 SystemExit 异常,该异常可以在外部级别中捕获。我有一种情况,我想明确且毫无疑问地从测试用例内部退出,但是 unittest 模块捕获了 SystemExit 并阻止了退出。这通常很好,但我试图处理的具体情况是我们的测试框架检测到它被配置为指向非测试数据库。在这种情况下,我想退出并阻止运行任何进一步的测试。当然,由于 unittest 捕获了 SystemExit 并愉快地继续前进,它阻碍了我。

到目前为止,我想到的唯一选择是使用 ctypes 或类似于直接调用 exit(3) 的东西,但这对于应该非常简单的东西来说似乎是一个非常丑陋的 hack。

0 投票
3 回答
20754 浏览

python - 在主线程的线程中引发未处理的异常?

有一些类似的问题,但没有一个提供我需要的答案。

如果我通过创建线程threading.Thread,然后抛出未处理的异常,则这些线程将被终止。我希望使用堆栈跟踪保留异常详细信息的默认打印,但也要降低整个过程。

我考虑过可以捕获线程中的所有异常,然后在主线程对象上重新引发它们,或者可以手动执行默认异常处理,然后SystemExit在主线程上引发 a。

解决这个问题的最佳方法是什么?

0 投票
1 回答
18334 浏览

eclipse - 不支持 @SuppressWarnings("PMD.DoNotCallSystemExit")

我需要System.exit(0)在应用程序中使用。Eclipse 安装了 PMD 插件并抱怨这行代码。添加@SuppressWarnings ("PMD.DoNotCallSystemExit")删除该警告,但现在我收到一个警告,表明这SuppressWarnings是不受支持的,尽管它确实有效。

有没有办法解决这个问题?

0 投票
1 回答
36703 浏览

python - python退出无限while循环,键盘中断异常

按下 Ctrl+C 时,我的 while 循环不会退出。它似乎忽略了我的 KeyboardInterrupt 异常。循环部分如下所示:

同样,我不确定问题出在哪里,但我的终端甚至从不打印我在异常中遇到的两个打印警报。有人可以帮我解决这个问题吗?

0 投票
1 回答
1902 浏览

python - celery 尝试通过在 task_postrun 信号中引发 SystemExit 来关闭工作者,但总是挂起并且主进程永远不会退出

我正在尝试通过 task_postrun 信号中的 raisin SystemExit() 关闭主要的 celery 进程。信号被很好地触发,异常被引发,但工作人员永远不会完全退出,只是挂在那里。

我该怎么做?

我在某处忘记了一些设置吗?

下面是我用于工作人员的代码(worker.py):

以下是tasks.py的代码:

为了测试这一点,我做的第一件事是运行工作代码 ( python worker.py),然后我将一个任务排队,如下所示:

我从工人那里看到的输出是这样的:

我期待python代码从调用返回app.worker_main()然后打印WORKER EXITED,然后进程完全退出。这永远不会发生,并且必须编辑工作进程才能kill -KILL {PID}让它消失(它也不能使用任何其他任务。

我想我的主要问题是:

我如何使代码返回app.worker_main()

我希望能够在执行多个任务后完全重新启动工作进程(通过让进程完全退出) 。X

更新我弄清楚了工作人员在做什么 - 工作人员 (在捕获异常WorkController正在等待调用self.stopSystemExit

0 投票
1 回答
3721 浏览

python - 有没有办法让 argparse.ArgumentParser.parse_args() 不退出参数错误?

例如:

问题是,parser.parse_args如果args_list. 是否有一个设置可以让它引发更友好的异常?如果有任何解决方法,我不想捕获SystemExit并从中提取所需的错误消息。

0 投票
1 回答
943 浏览

ruby - Ruby Daemon gem 如何避免退出错误?

我正在使用$ruby script_name命令运行以下脚本。父脚本生成两个子进程并等待 SIGTERM 或 SIGINT。父脚本能够按预期终止子进程。但是,在检查子日志时,我注意到退出期间记录了一个错误。是什么导致了这样的错误,我怎样才能避免它们干净地退出?

父/子脚本worker_monitor.rb

脚本标准输出:

Task1 输出日志(Task2 有类似日志):

0 投票
3 回答
7597 浏览

java - 在 java 中调用 System.exit() 的确切目的是什么

我对 system.exit 有点困惑。我从这个链接创建了一些东西。

但我心中有些疑惑。如果我使用系统退出,创建的对象、变量等会发生什么。一旦我调用system.exit,一切都会被破坏吗?如果“是”,那么为什么我们在 system.exit() 之前强制进行垃圾收集?如果“否”创建的对象在 JVM(内存)中存储多长时间?如果退出系统后再次运行程序,如果之前的对象在我调用 System.exit(); 后没有销毁,会发生什么?

谢谢。

0 投票
5 回答
1493 浏览

java - 完成或从辅助活动中退出应用程序?

我正在导航 Activity 2,当我按下后退按钮时,它应该退出或完成应用程序而不显示主要活动。我正在使用 ViewPager(Activity2),backpress如果我只在ViewPager的第一页中导航,则代码正在运行,当我导航其他页面时,退出或完成应用程序的代码不起作用并显示 mainActivity。

主要活动

活动2

0 投票
1 回答
65 浏览

java - 重新加载具有不同参数的类

所以我有一个类似的代码:

A级

B类

C类

ClassA的对象调用ClassB,然后初始化一个框架。现在,当按下ClassB上的按钮时,会初始化ClassC的对象 。

当按下ClassC上的按钮时,我需要使用更新的参数重新初始化ClassA的对象。因此,在从ClassC重新初始化ClassA的对象时, ClassC的旧对象仍然存在。

当按下特定按钮时,如何退出 ClassA 的旧对象初始化 ClassA 的新对象我能够创建ClassA的新实例,但问题在于从ClassC退出前一个对象,因为如果我添加System.exit(0)classC ,它会关闭ClassA的两个对象。我只想关闭旧对象。