- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 CLI 程序,当我执行像 program | 这样的二进制文件时头
我得到:
Error: unhandled exception: errno: 32 `Broken pipe` [IOError]
我想消除这个异常并尝试添加:
import posix
signal(SIG_PIPE, SIG_IGN)
在我的主要程序中,但这并没有消除错误。该程序使用 threadspool
,调用另一个过程来分析输入行池。 (我不知道这是否与问题有关)
更新:
responses.add(spawn parseArray(readspool, mergeOptions))
产生的线程)/Users/telatina/miniconda3/nim/lib/pure/concurrency/threadpool.nim(377) slave
/Users/telatina/git/nim-stuff/orf/src/porfidus.nim(307) parseArrayWrapper
/Users/telatina/git/nim-stuff/orf/src/porfidus.nim(247) parseArray
/Users/telatina/miniconda3/nim/lib/system/io.nim(155) checkErr
/Users/telatina/miniconda3/nim/lib/system/io.nim(138) raiseEIO
Error: unhandled exception: errno: 0 `Undefined error: 0` [IOError]
最佳答案
基于@julian-fondren 的回答和您的代码,我能够重现您的错误。
import os, posix, threadpool
signal(SIG_PIPE, SIG_IGN)
proc noise =
for i in 0 ..< int(1e6):
stdout.write($i & '\n')
threadpool.spawn noise()
threadpool.spawn noise()
threadpool.sync()
对于跟随者。
您也在代码中使用了 stdout.write
,may throw an IO Exception
由于您使用 SIG_IGN
线程在收到 SIG_PIPE
时不会停止运行,而是继续在损坏的管道上调用 stdout.write
,这会抛出异常。
为了解决这个问题,我找到了三个选项
处理异常
这是最通用的解决方案,适用于您的代码因“错误:未处理的异常”而崩溃的任何情况
to handle an exception in Nim使用 try
和 except
。
stdout.write($i & '\n')
变成
try:
stdout.write($i & '\n')
except IOError:
#handle it by ending the program
quit()
#or ignore it with
#discard
SIG_DFL
会导致线程静默终止,从而按照您的意愿运行,但这取决于平台。所以你也可以注册你自己的信号处理程序(对不起,丑陋的造型)#signal(SIG_PIPE,SIG_DFL)
signal(SIG_PIPE,cast[typeof(SIG_IGN)](proc(signal:cint) =
stderr.write("handled sigpipe\n")
quit()
))
echo
,与 stdout.write
不同,它不会抛出异常,因此对于这种情况,这可能是最简单的解决方法关于nim-lang - 如何忽略 nim 中的 "broken pipe"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63886311/
我正在处理一个巨大的 xml 文档(其中包含大约一百万个条目),然后使用 rabbitmq 将格式化版本导入数据库。每次发布大约 200,000 个条目后,我都会收到一个 broken pipe 错误
2022-06-27 10:01:17.501 ERROR 1 --- [nio-5010-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Ser
当我在删除软件包时看到奇怪的行为时,我有点像 linux 新手并且一直在设置我的系统。 即,当我尝试使用 Synaptic 删除新安装的软件包时,它有时会提示该软件包已损坏并且我无法完成我的任务。第二
为什么我会收到“xyz 上的内部链接损坏”,其中 xyz 不是托管网站的服务器的 IP 地址? 更具体地说:我的网站地址是“myExample.com”,还有另一个 IP 地址,我们称之为“anoth
我正在用 Java 编写一个简单的服务器,并且我能够在服务器端检索来自客户端的传入数据,但由于 2000 毫秒的超时而无法在客户端检索传入数据。有谁知道为什么会超时? 这是服务器的代码: privat
使用此 HTML 和 CSS: code { background-color: grey; padding: 2px 7px; line-height: 24px; /* this do
这是一个页面,如果设备无法连接,我将尝试从文件系统加载备份 var
为什么该模式被认为已损坏?我觉得还好吗?有什么想法吗? public static Singleton getInst() { if (instace == null) createInst(
根据documentation : Once an iterator’s __next__() method raises StopIteration, it must continue to do
可能是一个业余爱好者的标志,我想知道问题是不是公案(而不是我),但是,考虑一下这个公案 def test_calling_global_methods_without_parentheses
我正在使用 chrome://inspect/#devices通过cordova检查我的android-app构建的WebView。它在我的 Mac 上运行模拟器。可以找到该设备,但如果我在 WebV
我有一个 headless Ubuntu 服务器。我从 Mac 上通过 SSH 在服务器上运行命令(snapraid 同步)。指挥说大约需要6个小时,所以我就留了一夜。 当我今天早上下来时,Mac 上
我正在实现与 Android 应用程序通信的服务器端应用程序。安卓应用程序之前已经实现了原来与C++ Server的通信。现在我想用java代码替换C++服务器。 Android 应用程序与服务器通信
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我对 2D 引擎的世界还很陌生。我弄清楚了如何加载图像并将其显示为 Sprite 和其他东西,但有一个问题困扰着我。例如,当“火箭”击中一个物体时,它会对其造成伤害并留下一个弹坑。我想在那个物体上显示
我无法使用 IF 语句来执行“正确”的操作,即代码; public function getUID($email) { $query = $this->dbh->prepare("SELECT
我认为这是一个非常简单的设置,但不知何故我遗漏了一些东西...... 这是传出的 HTML。这是一个简单的固定宽度 2 列布局: ... ... ... ...
我在使此布局在 IE 中正常工作时遇到了一些问题。问题是,当我有一些小型大写字母、带下划线的文本时,将垂直对齐设置为中间的图像会打断下划线。小写字母的下划线向下移动。 See the picture.
我正在使用 YUI 来重置浏览器类,然后我带来了 在几个自定义样式表中...我已经看到这种情况发生了几次,但我认为我从未缩小过原因范围: 表格正在拉入图像以组成带阴影的方形表格...但由于某种原因,它
在这个片段中我有两个部分。 第一个显示两列(使用 display: flex;)和一个列上方的标题。我必须使用一个中间标签(在本例中为文章)将“flex”保持在原位。 但我想知道是否有一个 CSS 属
我是一名优秀的程序员,十分优秀!